【问题标题】:convert visual studio project version programmatically以编程方式转换 Visual Studio 项目版本
【发布时间】:2013-01-05 22:15:32
【问题描述】:

我们有许多包含数百个项目的解决方案。在迁移到新版本的 VisualStudio 期间,我们必须更改所有项目的目标框架版本。但是通过项目属性/应用程序/目标框架单击项目来更改此设置是非常无效的。

我们可以一次更改解决方案中所有项目的版本吗? 有什么方法可以自动/以编程方式执行此活动吗?

【问题讨论】:

    标签: .net visual-studio-2010 tfs visual-studio-2012


    【解决方案1】:

    csproj 文件只不过是 XML,以编程方式编辑很容易。

    这是我创建的一个小应用程序,它利用 Linq-Xml 查找和更新根文件夹下的所有 csproj 文件:

    var path = @"--Path to Root--";
    var files = Directory.GetFiles(path, "*.csproj", SearchOption.AllDirectories);
    
    XNamespace ns = "http://schemas.microsoft.com/developer/msbuild/2003";
    
    foreach (var file in files)
    {
        var doc = XDocument.Load(file);
        var element = doc.Descendants(ns + "TargetFrameworkVersion").Single();
        element.Value = "v4.5";
        doc.Save(file);
    }
    

    由于您已将其标记为 ,您可能需要对所有 csproj 文件执行检查,以删除只读标志。或者,也可以检查所有内容,然后使用tfpt uu 还原未更改的文件。

    【讨论】:

    • 引用更新怎么样?有什么你知道的工具吗?
    • 不,我只是按照同样的方法。
    猜你喜欢
    • 2012-02-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-02
    • 1970-01-01
    相关资源
    最近更新 更多