我的Visual Studio 2013中有一个C ++解决方案。 该解决方案包含2个项目。一个是游戏引擎项目,另一个是游戏项目。
启动的默认项目是Game(它是.exe),项目依赖于Game Engine项目(游戏项目只使用.lib)。
问题是,GameEngine项目总是使用Game的$(ProjectDir)或工作目录,这是我不想要的。即使它在属性中说它将使用GameEngine文件夹的路径,它最终也不会。
我希望GameEngine项目代码使用GameEngine项目文件的工作目录(当我从文件夹中加载文件或图像时)。
请问你能解决这个问题吗?
答案 0 :(得分:0)
那不是项目参考的工作方式。我们的想法是在默认项目的$(Outdir)
中生成一个完整的工作文件夹 - 在您的示例中为C:\folder\Game\bin\x64\release
或类似 - 您可以稍后将其打包到安装程序并进行分发。
据推测,您希望GameEngine项目代码在GameEngine的ProjectDir中运行 - 在您的示例C:\folder\GameEngine\bin\x64\release
或类似代码中 - 因为您希望代码访问该目录中的其他文件。如果是这种情况,您应该使用Build Action = Content
和Copy to Output Directory = Copy if newer
将这些文件添加到GameEngine.csproj(请参见下面的屏幕截图)。然后他们将被复制到游戏的$(Outdir)
,您的代码将能够访问它们。