【发布时间】:2010-03-22 11:28:55
【问题描述】:
出于各种原因,我宁愿不在我的项目中使用强命名(签名)程序集。但是,其中一个项目被共享点 Web 部件引用,这意味着它必须被签名。
是否可以对这个程序集进行签名,但是当我从其他项目中引用它时,使用非强引用来这样做。这将为我的其余代码提供未签名程序集的优势,但仍允许它由 sharepoint 加载。
【问题讨论】:
标签: c# assemblies assembly-signing signed-assembly
出于各种原因,我宁愿不在我的项目中使用强命名(签名)程序集。但是,其中一个项目被共享点 Web 部件引用,这意味着它必须被签名。
是否可以对这个程序集进行签名,但是当我从其他项目中引用它时,使用非强引用来这样做。这将为我的其余代码提供未签名程序集的优势,但仍允许它由 sharepoint 加载。
【问题讨论】:
标签: c# assemblies assembly-signing signed-assembly
执行此操作的最简单方法可能是使用两种不同的项目配置 - 一种构建强命名程序集,另一种不构建。显然,您需要小心构建和引用程序集的方式,但这与需求冲突的领域有关。
【讨论】:
只需继续构建您的项目,不要使用强名称。当您需要将其部署到 Sharepoint 时,请在构建后使用工具对其进行签名。这是一个可以做到这一点的工具:
http://signer.codeplex.com/Wikipage
您也可以手动操作,但它是 PITA:
http://buffered.io/posts/net-fu-signing-an-unsigned-assembly-without-delay-signing/
【讨论】:
这是 OP,但我没有 OpenID 登录,所以我想我无法以自己的身份回复。
感谢您的回复。我认为任何一个都可以,但情况变得更加复杂。我在这里记录了我的发现,以防其他人感兴趣。
事实上,sharepoint 引用了程序集 A,而程序集 A 又引用了程序集 B。
我可以毫无问题地构建程序集 A 和 B 都未签名,但是如果我想对 A 签名,我必须更改项目本身以引用程序集 B 的签名版本。
尽管可能有一种方法可以做到这一点,但我们认为不值得为具有相同名称的不同 DLL 集可能的 DLL 冲突和配置控制问题而烦恼。
因此,我们决定在所有构建中对这两个程序集进行签名,并在必要时将代码重构为不同的程序集,以确保只有最少量的代码包含在已签名的程序集中,这样它们就不太可能发生变化。
提姆
【讨论】: