【问题标题】:Using unsigned DLLs in project that is signed在已签名的项目中使用未签名的 DLL
【发布时间】:2012-01-17 19:34:14
【问题描述】:

我有一个需要在我的应用程序中使用的第 3 方 DLL。我的项目是用 SNK 签名的,因此我不能在没有签名的情况下使用这些未签名的 DLL。

我尝试按照here 的说明使用 ildasm.exe,但在尝试对 DLL 进行签名时收到错误消息,因为 DLL 包含非托管代码。我收到的错误消息是“生成的 PE 文件不可用”(DLL 使用 P/Invoke 调用)。

任何想法我可以在这里做什么?

【问题讨论】:

  • 软件供应商提供没有强名称的 DLL 是犯罪行为。特别是犯罪,因为它很容易做到。您完全有权坚持使用强命名版本。

标签: c# visual-studio-2010


【解决方案1】:

最简单的方法是使用密钥重新构建 DLL。您还没有告诉我们有关第 3 方 DLL 的任何信息……如果它是一个商业库,我希望相关公司很乐意为您提供签名的二进制文件。如果是开源库,你可以自己做。

如果您无法获得“正常”签名的二进制文件,也许您可​​以提供有关情况的更多详细信息?

【讨论】:

  • 我已经要求拥有 DLL 的公司(它是商业的)向我提供一个签名的二进制文件,我正在等待他们的回复。我还有什么可以做的吗?在这种情况下,您需要哪些进一步的细节?谢谢!
  • @Vixen:知道它是商业广告是我们缺少的细节。如果他们不愿意给你一个强命名的二进制文件,我会非常担心 - 我认为这表明他们对他们的软件并不认真。
  • 你能用al.exe做这个吗?
  • @CJ7:我不知道——我以为 al 是用于本地代码的,但我可能错了。我好久没用了。
【解决方案2】:

如果您无法获得第三方程序集的签名版本并且需要它来运行,则一种解决方法是在运行时动态加载 dll。

【讨论】:

  • 谢谢 - 这工作:) 丑陋但我在这一点上唯一的选择。
猜你喜欢
  • 2021-02-16
  • 1970-01-01
  • 1970-01-01
  • 2012-02-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多