0

我已将多个项目合并为一个解决方案。我创建了空解决方案并添加了这些项目,这是它的外观蓝图:

Root:
 Project1 - directory
 Project2 - directory
 Debug - directory
 Main.sln - file

现在我想将两个项目中的可执行文件和 dll 定向到解决方案文件中显示的 \debug 文件夹。我进入项目属性>>配置属性>>常规>>“输出目录”并将其更改output directory$(SolutionDir)$(Configuration)\新项目的默认值。

问题是它对创建输出文件的位置没有影响,它仍然是在旧目标中创建的。'Output Directory' 的旧路径是 .\Debug\ 并不重要。

这可能是因为SolutionDir&Configuration可能没有定义吗?我在哪里可以看到他们的定义或价值观?我还想创建一个新配置,即“带调试发布”我如何使用环境变量创建它?谢谢!

我的项目是 MFC/Visual C++。

附加组件: 这些标识符SolutionDir在脚本中定义的位置在哪里?我在 .vcxproj 文件中查找,但有提及。我创建了一个新的虚拟 VS2010 项目只是为了查看它的 .vcxproj 文件,但是这些标识的项目设置在我能看到的任何地方都没有定义!

4

3 回答 3

4

这很可能是由覆盖全局设置的特定设置引起的,即链接器的“输出”设置。这通常是从早期 Visual Studio 转换的结果。

您需要完成每个设置,注意那些值以粗体书写的设置,并使用“调试”或“发布”以及其他必要的设置重置为默认值(从下拉列表中选择)。

文件上也可能有特定的设置。我通常通过在记事本中打开项目并删除任何过多的设置来解决此问题。小心点。在 Notepad++ 或任何其他功能强大的编辑器中使用多行替换会有所帮助。

于 2013-02-19T08:06:21.250 回答
2

我的一个 VS2010 项目中的中间目录设置也有类似的问题。无论我将其设置为什么,它都将始终使用 $(SolutionDir)$Configuration 的默认值。奇怪的是,同一解决方案中具有相同设置的其他项目工作得很好。

玩了一圈之后,我偶然发现了一个解决方案。

  1. 单击属性页对话框中的设置。
  2. 单击编辑框右侧的向下箭头按钮。
  3. 选择“从父​​级或项目默认值继承”。
  4. 点击“应用”。
  5. 单击设置并将其更改为所需的值。

我不知道为什么会这样,但确实如此。似乎无论出于何种原因,宏都没有被正确评估。然后,在您应用继承的值之后,它似乎会自行重置并开始正确评估宏。

于 2015-04-21T21:05:34.977 回答
1

我想我也有类似的问题。

我最终做的是直接编辑 vcxproj 文件。找到此部分并为您的每个配置像这样编辑它:

  <PropertyGroup>
    <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(SolutionDir)$(Configuration)\</OutDir>
    <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(SolutionDir)$(Configuration)\</OutDir>
  </PropertyGroup>
于 2013-02-19T04:29:36.970 回答