【问题标题】:strong naming for microsoft enterprise library微软企业库的强命名
【发布时间】:2018-12-31 19:33:39
【问题描述】:

我在我的一个项目中使用 Microsoft 企业库。我需要强命名为Microsoft.Practices.EnterpriseLibrary.Common 的dll 之一。但它不起作用。

当我使用 ILDASM 反编译时,它会生成 3 个文件。

  1. IL 文件
  2. .RESOURCES文件
  3. 通用资源脚本文件

如何用密钥文件编译它。我应该使用哪个ILASM 命令?

【问题讨论】:

    标签: enterprise-library ilasm


    【解决方案1】:

    这些 dll 是从原始安装以几种不同的模式分发的。一组文件已签名,因此您需要找到该组并使用该组中的文件。

    当您安装 EntLib 包时,您会获得已编译的二进制文件(一些已签名)和源代码,它会编译源代码并创建 dll(未签名)。

    我的猜测是您使用的是非签名(从本地机器上的源代码编译)文件,而不是签名文件。

    【讨论】:

    • 是的,我正在使用已编译的源代码,因为我对下载的企业库代码添加了一些更改。而且我只需要从这个编译(非签名)代码中使用来自 entlib 的几个 dll。所以,我希望使用 ildasm 和 ilasm 来为他们每个人命名。这行得通吗?
    • 所以你想签署你修改和编译的代码?您不是 Microsoft,因此您必须使用自己的密钥。这就是你在说的吗?如果您有源代码(您已修改),那么您为什么要反编译。让我换一种说法,你不能“就像”微软在签署它一样签署代码(默认代码或稍微修改的代码)。因为如果可以,您可以编写恶意代码,然后将其作为 Microsoft 程序集传递出去。
    • 但我想将我正在使用的 dll 复制到 GAC。另外我不想在服务器中使用未签名的 dll。当然,应该有一些方法来做到这一点。你能帮忙吗!
    • 您拥有已修改的源代码。编译并签名。将代码视为您拥有它,因为您已对其进行了修改。 msdn.microsoft.com/en-us/library/xc31ft41%28v=vs.110%29.aspx
    • 我做了同样的事情,但使用的是 sn.exe。它没有工作。那就是我能够生成强命名的dll。但是在我的项目中引用它会产生构建错误。收到此错误:无法加载文件或程序集...需要强命名程序集无论如何感谢您的帮助。我会试试这个并回复你。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-07-11
    • 2019-11-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-03-30
    • 2011-02-14
    相关资源
    最近更新 更多