1

我已经从 Nuget 包中为 .Net 安装了 SwaggerUI,并尝试使用 swagger 测试 web api 方法。但我得到低于编译时错误。

Error   Assembly generation failed -- Referenced assembly 'WebActivator' does not have a strong name

当我将签名属性的解决方案设置 从选中更改为未选中时,我没有收到此错误。现在我不想更改对解决方案设置的签名属性所做的任何设置并修复此错误。有人可以帮我解决此错误吗?

4

1 回答 1

0

您的程序集是强命名的,而您最近引用的新程序集则不是。不仅如此,它们不是从源代码编译的(你是通过 NuGet 获得的)。

我现在想到了两种解决方法:

  1. 获取 SwaggerUI 和依赖项的源代码并使用您的密钥对其进行签名。我认为这是一个乏味的过程,因为您需要构建所有内容。
  2. 像现在一样使用 DLL,并在每次构建后对它们进行签名。例如,您可以使用这些说明(分解、签名和重新组装)。如果您这样做,我认为值得将此作为预构建步骤添加到您的依赖最少的项目(首先构建的项目)中。
  3. 我也发现了这个——Assembly Strong Naming Toolkit (for NuGet)。从未尝试过,但也许值得研究一下,因为它似乎是为您的情况设计的。
于 2014-08-13T19:45:00.773 回答