.net 以编程方式转换visual studio项目版本

.net 以编程方式转换visual studio项目版本,.net,visual-studio-2010,tfs,visual-studio-2012,.net,Visual Studio 2010,Tfs,Visual Studio 2012,我们有许多包含数百个项目的解决方案。在迁移到VisualStudio新版本的过程中,我们必须更改所有项目的目标框架版本。但是,通过按项目属性/应用程序/目标框架单击项目来更改此设置是非常无效的 我们可以一次更改解决方案中所有项目的版本吗? 有什么方法可以自动/通过编程完成此活动吗?csproj文件只不过是XML,通过编程编辑文件非常简单 下面是我创建的一个小应用程序,它使用Linq Xml查找和更新根文件夹下的所有csproj文件: var path = @"--Path to Root--";

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

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

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文件执行签出,以删除只读标志。或者,只需签出所有内容,然后使用还原未更改的文件。

引用更新如何?你知道有什么工具吗?没有,我只是遵循同样的方法。