使用脚本删除Visual Studio中的dll签名

时间:2009-09-15 07:26:29

标签: visual-studio-2008 unit-testing assembly-signing

我们有一个C#解决方案与ca. 55个项目,包括测试项目。

由于项目的一部分是sharepoint,所有dll都已签名。

我们希望使用代码覆盖率运行单元测试。然后,我们得到了代码覆盖无法签署dll的问题。

因此,我们需要取消dll的设置,运行测试,然后重新签名。使用大量项目文件这很麻烦。

问题是:是否可以以任何方式自动化? (辞职我可以做一个撤销结账)

1 个答案:

答案 0 :(得分:2)

是的,这很容易。密钥签名设置存储在项目文件中,该文件只是XML。编写脚本以遍历此文件并删除签名设置。

  1. 删除定义签名的.csproj文件中的XML设置
  2. 使用msbuild重建项目
  3. 针对这些重建的DLL运行单元测试。
  4. 再次遍历.proj文件并重新添加设置。
  5. 使用签名重新编译。
  6. 在.csproj文件中,您正在寻找要删除的以下两行:

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