1

私は61以上のプロジェクトで解決策を持っています。

ターゲット プラットフォームは「デバッグ」、「リリース」、「リリース タブレット」の 3 つ
です。ソリューション プラットフォームは「x86」と「任意の CPU」の 2 つです。

すべてのプロジェクトを 2 つのフォルダーでビルドしたい
: プラットフォーム 'x86' での 'Debug' 構成用の D:\samplepath\Debug\ と
'Release' および 'Release tablet' 構成用の 'Any CPU' D:\samplepath\Release\すべてのプラットフォームで

これらのパスを 1 つずつ設定するのではなく、これらすべてのパスを管理する簡単な方法はありますか (61x3x2 = 366 のパスを設定して!sic!)? 前もって感謝します

4

1 に答える 1

2

次のようなことを試してください (LinqPad でこのようなコードを実行しますが、必要に応じてコンソール アプリを作成できます)。

const string xmlns = "http://schemas.microsoft.com/developer/msbuild/2003";
void Main()
{
     var dir = @"C:\proj\catalyst\source";
     var xmlns = "http://schemas.microsoft.com/developer/msbuild/2003";
     foreach( var configFile in Directory.EnumerateFiles(dir,"*.csproj",SearchOption.AllDirectories))
     {              
        var doc = XDocument.Load(configFile);               
        var paths = doc.Descendants(XName.Get("OutputPath",xmlns));
        foreach(var path in paths)
        {
            path.Value = "\"$(SolutionDir)$(ConfigurationName)\$(PlatformName)\"";
        }
        doc.Save(configFile);
     }
}

これにより、出力ディレクトリがソリューション ファイルに対して相対的になります (ただし、必要に応じて $(SolutionDir) を絶対パスに置き換えることができます)。

于 2013-03-18T12:35:29.613 に答える