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

何らかのシェル スクリプトや Visual Studio アドインなどがあるのでしょうか。

4

2 に答える 2

1

プロジェクトが作成されたら、プロジェクトを右クリックし、[プロパティ] をクリックします。ビルド タブには、出力パスのボックスがあります。

プロジェクトごとに自動化する方法があるかどうかはわかりません。

于 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 に答える