2009-09-15 46 views
1

我們有一個C#解決方案與ca. 55個項目,包括測試項目。用腳本刪除Visual Studio中的dll簽名

由於項目的一部分是共享點,所有的dll都被簽名。

我們想運行代碼覆蓋率的單元測試。然後,我們得到代碼覆蓋無法簽署dll的問題。

因此,我們需要取消簽名的DLL,運行測試,然後辭職。有了大量的項目文件,這很麻煩。

問題是:是否有可能以任何方式自動執行此操作? (要辭職,我只能做撤銷結賬)

回答

2

是的,那很容易。密鑰簽名設置存儲在項目文件中,這只是XML。編寫腳本來遍歷此文件並刪除簽名設置。在定義了簽字

  • 重建使用的MSBuild
  • 運行鍼對這些重建DLL的單元測試項目(S)的.csproj的文件

    1. 刪除XML設置。
    2. 再次遍歷.proj文件並重新添加設置。
    3. 使用簽名重新編譯。

    在.csproj的文件,你正在尋找下面兩行刪除:

    <SignAssembly>true</SignAssembly> 
    <AssemblyOriginatorKeyFile>MyKey.snk</AssemblyOriginatorKeyFile>