我已将多个项目合并为一个解决方案。我创建了空解决方案并添加了这些项目,下面是蓝图:
Root:
Project1 - directory
Project2 - directory
Debug - directory
Main.sln - file
现在我想将两个项目中的可执行文件和dll定向到解决方案文件中显示的\ debug文件夹。我进入项目专业>>配置适当性>>一般>> “输出目录”并将output directory
更改为$(SolutionDir)$(Configuration)\
,这是新项目的默认设置。
问题是它对输出文件的创建位置没有影响,它仍然在旧目标中创建。 “输出目录”的旧路径是。\ Debug \并不重要。
这可能是因为SolutionDir
& Configuration
可能没有定义?我在哪里可以看到他们的定义或价值观?我还想创建一个新的配置,即'Release with Debug'如何使用环境变量创建?谢谢!
我的项目是MFC / Visual C ++。
添加组件:
这些标识符在脚本中定义了SolutionDir
这些标识符在哪里?我在.vcxproj文件中查找但有提及它。我创建了一个新的虚拟VS2010项目,只是为了查看它的.vcxproj文件,但是这些项目设置没有在我能看到的任何地方定义!
答案 0 :(得分:4)
这很可能是由覆盖全局设置的特定设置引起的,即链接器的“输出”设置。这通常是从早期Visual Studio转换的结果。
您需要的是完成每个设置,注意那些其值以粗体显示的设置,并重置为默认设置(从下拉列表中选择它)每个设置都带有'debug'或'release',以及其他必要的设置。
文件上也可能有特定的设置。我通常通过在记事本中打开项目并删除任何过多的设置来解决此问题。小心点在Notepad ++或任何其他有用的编辑器中使用多行替换有帮助。
答案 1 :(得分:2)
我的一个VS2010项目中的中间目录设置遇到了类似的问题。无论我将它设置为什么,它总是使用默认值$(SolutionDir)$ Configuration。奇怪的是,具有相同设置的同一解决方案中的其他项目工作正常。
玩完游戏后,我偶然发现了一个解决方案。
我不知道为什么会这样,但确实如此。似乎无论出于何种原因,宏都没有被正确评估。然后,在应用继承的值之后,它似乎重置自己并开始正确地评估宏。
答案 2 :(得分:1)
我认为我遇到了类似的问题。
我最终做的是直接编辑vcxproj文件。查找此部分并针对您的每个配置进行相应编辑:
<PropertyGroup>
<OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(SolutionDir)$(Configuration)\</OutDir>
<OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(SolutionDir)$(Configuration)\</OutDir>
</PropertyGroup>