6

由于各种原因,我宁愿不在我的项目中使用强命名(签名)程序集。但是,其中一个项目被 Sharepoint Web 部件引用,这意味着它必须经过签名。

是否可以签署这个程序集,但是当我从其他项目中引用它时,使用非强引用来这样做。这将为我的其余代码提供未签名程序集的优势,但仍允许它由共享点加载。

4

3 回答 3

3

最简单的方法可能是拥有两种不同的项目配置——一种构建强命名程序集,另一种不构建。显然,您需要小心如何构建和引用程序集,但这与具有冲突需求的领域有关。

于 2010-03-22T11:32:27.997 回答
1

Just keep building your project w/o strong names. When you need to deploy it to Sharepoint, use a tool to sign it after it is built. Here's a tool that does exactly that:

http://signer.codeplex.com/Wikipage

You can also do it manually, but it's a PITA:

http://buffered.io/posts/net-fu-signing-an-unsigned-assembly-without-delay-signing/

于 2010-04-08T00:17:26.597 回答
0

这是 OP,但我没有 OpenID 登录,所以我想我无法以自己的身份回复。

感谢您的回复。我认为两者都可以,但情况变得更加复杂。我在这里记录了我的发现,以防其他人感兴趣。

事实上,sharepoint 引用程序集 A,程序集 A 又引用程序集 B。

我可以毫无问题地构建程序集 A 和 B 都未签名,但是如果我想签署 A,我必须更改项目本身以引用程序集 B 的签名版本。

尽管可能有一种方法可以做到这一点,但我们认为可能的 DLL 冲突和配置控制问题与具有相同名称的不同 DLL 集是不值得的。

因此,我们决定在所有构建中对这两个程序集进行签名,并在必要时将代码重构为不同的程序集,以确保只有最少量的代码包含在已签名的程序集中,这样它们就不太可能发生变化。

蒂姆

于 2010-04-08T11:00:32.637 回答