2012-11-09 160 views
1

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

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插件,或者其他什么?

回答

0

自己想出来,希望对别人有用。

我打开.csproj的文件,并插入这样的:最后PropertyGroup标签后

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

经过测试,EXE确实出现在"SolutionDirectory\BuildFolder\MainProject\Debug-x86\bin"之内,所有中间的东西都去了"SolutionDirectory\BuildFolder\MainProject\Debug-x86\obj"。 Visual Studio仍然在我的源代码树内创建一个空的“obj”目录,尽管......因为它是空的,所以它不是什么大问题。

1

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

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

+0

不幸的是,它a)不移动“obj”目录,b)每个配置工作。手动设置6个不同的路径(Debug-x86,Debug-x64,Release-x86,Release-x64,UnstableSpeedup-x86,UnstableSpeedup-x64)很烦人。我到底写什么“输出”框? –

+0

输出路径是要将二进制文件输出到的目录。在你的情况下,它会是.. \ BuildFolder \ MainProject,.. \ BuildFolder \ FirstSlaveProject等。您不应该为每个构建手动创建文件夹。如果文件夹不存在于目录中,它将在您开始构建时创建它。 –

+0

我错过了顶部的配置下拉菜单。您也可以卸载项目并直接编辑.csproj,因此您不必切换配置下拉菜单。 –

相关问题