1

我将有一个相当大的解决方案,其中包含许多项目,并且我的包含源代码的文件夹在任何时候都必须没有 .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 等配置分别写它!),具体如何?我怀疑 Visual Studio 会识别%SolutionFolder.

是否有某种 shell 脚本、Visual Studio 插件或其他什么?

4

2 回答 2

1

创建项目后,右键单击该项目,然后单击Properties。在构建选项卡上是一个用于输出路径的框。

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

于 2012-11-09T19:18:39.073 回答
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”目录……无论如何,因为它是空的,所以没什么大不了的。

于 2012-11-09T20:50:21.367 回答