2012-09-10 35 views
1

請有人知道是否有辦法自動修復包含版本引用的Visual Studio 2010 .csproj文件(例如通過刪除版本)?上下文是我試圖建立的一些第三方代碼1000名的歷史提交,對於一些的.csproj文件包含的參考版本時,他們不應該,如提交的:有沒有辦法在.csproj文件中自動修復版本化引用?

[ERROR] Found versioned reference on line: <Reference Include="<...>, Version=1.2.34567.89012, Culture=neutral, PublicKeyToken=<...>, processorArchitecture=MSIL" /> in <...>. Versioned references are not allowed. 

我可以想象寫一個腳本來做到這一點,但這似乎有點痛苦(特別是因爲腳本只會對這個特定的任務有用,之後無用) - 我理想的是尋找例如一個msbuild命令我可以運行.csproj文件來修復它們。有什麼機會存在(不太有希望)? :)很明顯,手動修復.csproj文件達到1000次提交併不是一種選擇,因此看起來好像是這樣或者寫了一個腳本。

+0

這不是太難寫一個MSBuild腳本列表所有.csproj文件,並使用https://github.com/loresoft/msbuildtasks中的FileUpdate任務對版本號進行查找/替換 – stijn

+0

您可以爲此任務添加更多info \ samples。你是否鎖定了msbuild腳本。你需要爲你應該執行的1000個版本運行它嗎? –

+0

上下文是我需要運行該修復程序作爲一系列命令的一部分來檢出和構建1000個提交中的每一個。我希望避免需要坐下來寫代碼來完成它,因爲這是一個拋棄任務,但我想這就是它的前進方向。我並沒有特別關注MSBuild - 伊利亞的C#建議可能是我可能會去的方式,除非我可以用'sed'或其他方法做一些有用的事情 - 我只是說MSBuild,因爲我認爲微軟可能提供了一種方式「修復」破損的項目文件。顯然不是! –

回答

1

如果您傾向於使用msbuild進行此操作並安裝.net 4.0,則可以使用C#快速編寫自己的內聯任務。 我發佈了sample of msbuild inline taskusage of it

如果您不僅限於msbuild - 我認爲powershell腳本可以在幾行內完成相同的工作。

相關問題