由于各种原因,我宁愿不在我的项目中使用强名称(签名)程序集。但是,其中一个项目由sharepoint Web部件引用,这意味着它必须签名。
是否可以对此程序集进行签名,但是当我从其他项目引用它时,使用非强引用来执行此操作。这将为我提供其他代码的非签名程序集的优点,但仍然允许它由sharepoint加载。
答案 0 :(得分:3)
最简单的方法可能是拥有两个不同的项目配置 - 其中一个构建一个强命名的程序集,而其中一个不构建。显然,你需要小心如何构建和引用程序集,但这与需求冲突的领域有关。
答案 1 :(得分:1)
只需继续构建没有强名称的项目。当您需要将其部署到Sharepoint时,请使用工具在构建后对其进行签名。这是一个完全正确的工具:
http://signer.codeplex.com/Wikipage
你也可以手动完成,但它是PITA:
http://buffered.io/posts/net-fu-signing-an-unsigned-assembly-without-delay-signing/
答案 2 :(得分:0)
这是OP但我没有OpenID登录,所以我想我不能像我一样回复。
感谢您的回复。我认为要么会有效,但情况会变得更复杂一些。我在这里记录了我的发现,以防其他人感兴趣。
实际上,sharepoint引用程序集A和程序集A依次引用程序集B.
我可以构建程序集A和B都没有问题,但是如果我想签署A,我必须更改项目本身以引用程序集B的签名版本。
虽然可能有一种方法可以做到这一点,但我们认为可能的DLL冲突和配置控制问题,使用不同的同名DLL集合并不值得麻烦。
因此我们决定在所有版本中对这两个程序集进行签名,并在必要时将代码重构到不同的程序集中,以确保只有最少量的代码在签名的代码中,因此它们不太可能发生更改。
添