1

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

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

我们想运行具有代码覆盖率的单元测试。然后我们得到代码覆盖率无法检测签名 dll 的问题。

因此,我们需要取消对 dll 的签名,运行测试,然后将它们退出。对于大量的项目文件,这很麻烦。

问题是:有可能以任何方式自动化吗?(要辞职,我可以撤消结帐)

4

1 回答 1

2

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

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

在 .csproj 文件中,您正在寻找要删除的以下两行:

<SignAssembly>true</SignAssembly>
<AssemblyOriginatorKeyFile>MyKey.snk</AssemblyOriginatorKeyFile>
于 2009-09-15T07:33:36.670 回答