第一點可以用簡單的文本編輯器來解決,它可以一次處理多個文件並查找/替換。只需打開所有的csproj在它與
<Compile Include="..\SharedAssemblyInfo.cs">
<Link>Properties\SharedAssemblyInfo.cs</Link>
</Compile>
替換字符串<Compile Include="Properties\AssemblyInfo.cs" />
或者你可以寫一個這樣的工具:
var files = Directory.GetFiles(yourSolutionDir, "*.csproj", SearchOption.AllDirectories);
foreach (var f in files) {
string contents = File.ReadAllText(f);
string result = contents.Replace("<Compile Include=\"Properties\\AssemblyInfo.cs\" />", putSecondStringHere_ItIsJustTooLong); // :)
File.WriteAllText(f, contents);
}
至於第二個問題......你可以看看Visual Studio custom project templates,但我不確定這值得付出的努力。你應該寫海事組織測試,而不是檢查。它會簡單得多,結果實際上幾乎是一樣的。
UPD:關於根據某些自定義規則編寫用於檢查解決方案/項目文件的測試。基本上,sln/csproj格式足夠簡單,可以毫不費力地進行解析。所以如果你想把SharedAssemblyInfo.cs
鏈接到每個項目中 - 只需解析csproj並檢查它。然後將該檢查器放入構建服務器中,並在每個構建中運行它。我們目前有這樣的系統工作,花費大約兩天的時間編寫,但爲我們節省了更多(我們有更復雜的規則和多解決方案項目,所以這是值得的努力)。
我現在不會在這裏詳細介紹這個檢查(不是那麼簡短),但是我很快就會寫博客文章 - 很可能直到本週結束。所以,如果你有興趣 - 只需稍後檢查my blog :)
UPD:Here它是。
常見的做法是創造出獨特的集信息 – VMAtm