2013-01-22 35 views
1

我們有許多包含數百個項目的解決方案。在遷移到新版VisualStudio期間,我們必須更改所有項目的目標框架版本。但通過按項目Properties/Application/TargetFramework單擊項目來更改此設置是非常無效的。以編程方式轉換visual studio項目版本

我們可以一次更改解決方案中所有項目的版本嗎? 有沒有辦法自動/以編程方式執行此活動?

回答

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恢復未更改的文件。

+0

引用更新是什麼?有沒有你知道的工具? – rahulga

+0

不,我只是按照相同的方法。 – DaveShaw

相關問題