このようなツールは、たとえばC#で自分でMicrosoft.Build.Construction
作成できます。名前空間のクラスを見ると、プログラムでプロジェクトを作成するために作成されています。
ただし、よりシンプルで用途の広いオプションは、すべてのプロジェクトで同じプロパティシートを使用し、必要なすべてのディレクトリパスを設定することです。これには再利用可能なという大きな利点もあるため、出力ディレクトリを変更することにした場合でも、プロパティシートを参照するすべてのプロジェクトが自動的に影響を受けます。例えば:
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<MyMainDir>$(ProjectPath)\..\</MyMainDir>
<OutDir>$(MyMainDir)\bin\$(ConfigurationName)</OutDir>
<IntDir>$(MyMainDir)\tmp\$(ConfigurationName)</IntDir>
</PropertyGroup>
</Project>
ConfigurationName
これにより、最初に「メインディレクトリ」、つまり質問の「プロジェクト」という名前のディレクトリが特定され、次にそれと現在の名前(デフォルトではDebug
または)に基づいて出力ディレクトリと中間ディレクトリが設定されますRelease
。
これで、このプロパティシートをプロジェクトにインポートするだけで済みます。に移動し、プロジェクトView->Other Windows->Property Manager
を右クリックして、を選択しますAdd Existing property Sheet
。<Import Project=....>
または、プロジェクトファイルに手動で追加することもできます。
その間、すべてのプロジェクトが同じオプションを使用するように、プロパティシートにコンパイラ/リンカーオプションを追加することもできます。これには少し時間がかかりますが、プロジェクト設定で同じオプションを何度も変更する必要がないため、将来的にはかなりの時間を節約できます。