1

何百ものプロジェクトを含む多くのソリューションがあります。VisualStudioの新しいバージョンへの移行中に、すべてのプロジェクトのターゲットフレームワークのバージョンを変更する必要があります。ただし、プロジェクトごとに[プロパティ]/[アプリケーション]/[TargetFramework]をクリックしてこの設定を変更することは、非常に効果的ではありません。

ソリューション内のすべてのプロジェクトのバージョンを一度に変更できますか?このアクティビティを自動的に/プログラムで実行する方法はありますか?

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 に答える