VB.NET程序集上的强名称验证失败

时间:2010-05-05 10:52:54

标签: vb.net strongname ilmerge

我有一个VB.Net 1.1应用程序在Visual Studio中编译后工作正常。但是,我想使用ILMerge将所有引用的程序集合并到一个可执行文件中,以便更容易移动。在我通过ILMerge发送并尝试运行它后,我收到错误

“assembly.exe的强名称验证失败”.....

但我的东西都没有名字!我在这里看到这篇文章:Strong Name Validation Failed并尝试通过'sn.exe -Vr merged.exe'运行它,但这给了我这个错误:

“merged.exe不代表强名称程序集”

以前有其他人有这个问题吗?我该如何解决?

更新:

我开始觉得强名称验证不是真正的问题。我正在构建.NET v1.1并在一台机器上运行,这是唯一安装的.NET版本(恰好是Windows 2003)。合并的可执行文件似乎在我尝试的每台Windows 2003机器上都出现了这个错误,但是如果我尝试在更现代的操作系统(Vista)上运行它至少会启动它,但这不是一个很好的测试,因为环境不是适合真正的考验。

  • 我已验证我的app.config具有正确的设置(指定v1.1.4322的必需和支持的运行时版本)
  • 通过ILMerge运行程序集时,我使用/targetplatform:v1.1选项。

ILMerge肯定会导致问题(即在我合并之前它工作正常),我只是不知道如何修复它。

1 个答案:

答案 0 :(得分:1)

我必须找到并下载一个非常旧版本的ILMerge(v1.1)才能使我的合并二进制文件正常工作;当前ILMerge应用程序构建.NET 1.1程序集的方式必定存在错误。值得庆幸的是,我们内部有一个,因为我可能从未在网上找到它。