1

我有超过 61 个项目的解决方案。

有 3 个目标平台:“Debug”、“Release”、“Release tablet”
有 2 个解决方案平台:“x86”和“Any CPU”

我希望在 2 个文件夹中构建所有项目:
D:\samplepath\Debug\ 用于平台“x86”上的“调试”配置和“任何 CPU”
D:\samplepath\Release\ 用于“发布”和“释放平板电脑”配置在所有平台上

是否有任何简单的方法来管理所有这些路径,而不是一一设置它们(它是 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 回答