我可以在VS12 / 10中同时更改所有解决方案的项目输出路径吗?

时间:2013-03-18 12:22:17

标签: c# .net visual-studio

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

有3个目标平台:'Debug','Release','Release tablet' 有两个解决方案平台:'x86'和'Any CPU'

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

有没有简单的方法来管理所有这些路径而不是逐个设置它们(它是61x3x2 = 366路径来设置!sic!)? 提前致谢

1 个答案:

答案 0 :(得分: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)。)