在VS2010项目中更改输出目录不起作用

Changing output directory in VS2010 project doesn't work

本文关键字:输出 不起作用 VS2010 项目      更新时间:2023-10-16

我已经将几个项目组合成一个解决方案。我创建了空的解决方案,并添加了这些项目,下面是它的蓝图:

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

现在,我想将两个项目中的可执行文件和dll引导到解决方案文件的\debug文件夹中。我进入项目属性>>配置属性>>常规>>"输出目录",并将output directory更改为$(SolutionDir)$(Configuration),这是新项目的默认值。

问题是,它对输出文件的创建位置没有影响,它仍然是在旧的目标中创建的。"输出目录"的旧路径为。\调试并不重要。

这可能是因为SolutionDir&Configuration可能没有定义?我在哪里可以看到它们的定义或价值观?我还想创建一个新的配置,它将是"Release with Debug"。我如何使用环境变量创建它?谢谢

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

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

这很可能是由覆盖全局设置的特定设置引起的,即Linker的"输出"设置。这种情况通常是从早期的Visual Studio转换而来的。

你需要的是浏览每个设置,注意那些值用粗体写的设置,并用"debug"或"release"将每个设置重置为默认值(从下拉列表中选择),以及其他必要的设置。

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

我想我也遇到了类似的问题。

我最终做的是直接编辑vcxproj文件。找到这个部分,并为您的每个配置编辑如下:

  <PropertyGroup>
    <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(SolutionDir)$(Configuration)</OutDir>
    <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(SolutionDir)$(Configuration)</OutDir>
  </PropertyGroup>

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

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

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

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