I have a C++ Visual Studio project that depends on some resources (.glsl
files).
Currently I have to copy and paste the resource directories each time I build the project, but that's quite unhandy.
I would like to know if there is a way to make the building process automatically include the resource files besides the generated .exe
. If anyone could possibly provide some references too it would be appreciated, given that I can't find anything online.
The project structure is the following:
root
|
+-- resources
| |
| +- shaders
| |
| +- shader files (.glsl)
|
+- src files (.cpp/.h)
Current result after the release build:
Release
|
+- .exe
+- .pdb
+- DLLs
Desired result:
Release
|
+-- resources
| |
| +- shaders
| |
| +- shader files (.glsl)
|
+- .exe
+- .pdb
+- DLLs
As suggested by Minxin Yu - MSFT, I've tried using the Post-build events, with the following command:
PowerShell Copy-Item -Path $(SolutionDir)$(ProjectName)\resources -Destination $(SolutionDir)x64\Release\ -Recurse
But the build fails with the following error:
Build started...
1>------ Build started: Project: 02es, Configuration: Release x64 ------
1>Copy-Item : Impossibile trovare un parametro posizionale che accetta l'argomento
1>'Righi\Programmi\GitHub\Fondamenti-di-Computer-Graphics-M\laboratorio\02es\resources'.
1>In riga:1 car:1
1>+ Copy-Item -Path D:\Michele Righi\Programmi\GitHub\Fondamenti-di-Compu ...
1>+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1> + CategoryInfo : InvalidArgument: (:) [Copy-Item], ParameterBindingException
1> + FullyQualifiedErrorId : PositionalParameterNotFound,Microsoft.PowerShell.Commands.CopyItemCommand
1>
1>C:\Program Files\Microsoft Visual Studio\2022\Community\MSBuild\Microsoft\VC\v170\Microsoft.CppCommon.targets(149,5): error MSB3073: The command "PowerShell Copy-Item -Path D:\Michele Righi\Programmi\GitHub\Fondamenti-di-Computer-Graphics-M\laboratorio\02es\resources -Destination D:\Michele Righi\Programmi\GitHub\Fondamenti-di-Computer-Graphics-M\laboratorio\x64\Release\ -Recurse
1>C:\Program Files\Microsoft Visual Studio\2022\Community\MSBuild\Microsoft\VC\v170\Microsoft.CppCommon.targets(149,5): error MSB3073: :VCEnd" exited with code 1.
1>Done building project "02es.vcxproj" -- FAILED.
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========
========== Build started at 9:23 AM and took 02,321 seconds ==========
Add post build event in Project's properties's Build Events.
E.g.
PowerShell Copy-Item -Path $(SolutionDir)$(ProjectName)\resources -Destination $(SolutionDir)x64\Release\ -Recurse
Update: For path with spaces, combine "" and ''
PowerShell Copy-Item "-Path '$(SolutionDir)$(ProjectName)\resources' -Destination '$(SolutionDir)x64\Release\' -Recurse"