我将有一个相当大的解决方案,其中包含许多项目,并且有理由我在其中包含源代码的文件夹中的任何一点都必须没有.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插件,或其他什么?
答案 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”目录,但是......无论如何,因为它是空的,这不是什么大问题。