在Visual Studio中设置输出路径

时间:2012-11-09 19:15:46

标签: visual-studio-2010

我将有一个相当大的解决方案,其中包含许多项目,并且有理由我在其中包含源代码的文件夹中的任何一点都必须没有.obj或.exe或.dll文件。所以,我想出了这个结构:

SolutionDirectory
 |- MainProject
     |- MainProject.csproj
     |- Main.cs
     ...
 |- FirstSlaveProject
     |- FirstSlaveProject.csproj
     ...
 |- SecondSlaveProject
     |- SecondSlaveProject.csproj
 ...
 |- BuildFolder
     |- MainProject
         |- bin
         |- obj
     |- FirstSlaveProject
         |- bin
         |- obj
     |- SecondSlaveProject
         |- bin
         |- obj
     ...

这个想法是所有源文件都在项目的文件夹中,所有二进制文件都转到“BuildFolder”,按项目名称排序。看起来很合理,对吧?

所以,我估计当我在我的解决方案中创建一个新项目时,我必须写一些类似于%SolutionFolder%\BuildFolder\%ProjectName%\%ProjectConfigName%\bin" and "%SolutionFolder%\BuildFolder\%ProjectName%\%ProjectConfigName%\obj的内容。

所以,我在哪里写这个(我希望我不必为每个Debug,Release,UnstableSpeedup等配置单独编写它!),具体如何?我怀疑VS会认出%SolutionFolder

也许有某种shell脚本,或VS插件,或其他什么?

2 个答案:

答案 0 :(得分:1)

创建项目后,右键单击项目,然后单击属性。在构建选项卡上有一个输出路径的框。

我不知道是否还有为每个项目自动化它。

答案 1 :(得分:0)

自己想出来,希望它对其他人有用。

我打开.csproj文件,然后插入:

<PropertyGroup>
  <OutputPath>$(SolutionDir)BuildFolder\$(MSBuildProjectName)\$(Configuration)-$(Platform)\bin\</OutputPath>
  <IntermediateOutputPath>$(SolutionDir)BuildFolder\$(MSBuildProjectName)\$(Configuration)-$(Platform)\obj\</IntermediateOutputPath>
</PropertyGroup>

最后 PropertyGroup标记后。

经过测试,EXE确实出现在"SolutionDirectory\BuildFolder\MainProject\Debug-x86\bin"内,所有中间内容都转到了"SolutionDirectory\BuildFolder\MainProject\Debug-x86\obj"。 Visual Studio仍在我的源代码树中创建一个空的“obj”目录,但是......无论如何,因为它是空的,这不是什么大问题。