1

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

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

4

1 回答 1

2

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还原未更改的文件。

于 2013-01-22T22:37:15.223 回答