我的Windows窗体应用程序(我称之为MyApplication.exe
)比我的dev的机器之外的机器上,一个对话框弹出说:如何当我尝试打开诊断“System.TypeLoadException”错误
MyApplication
已停止工作
Windows可以解决网上查询到的问题
- 检查在线的解决方案,并关闭程序
- 关闭程序
详细
问题签名:
Problem Event Name: CLR20r3
Problem Signature 01: myapplication
Problem Signature 02: 1.2.0.0
Problem Signature 03: 51c34395
Problem Signature 04: mscorlib
Problem Signature 05: 4.0.0.0
Problem Signature 06: 50484bd7
Problem Signature 07: 1204
Problem Signature 08: 89
Problem Signature 09: System.TypeLoadException
OS Version: 6.1.7600.2.0.0.256.48
Locale ID: 1033
Additional Information 1: 0a9e
Additional Information 2: 0a9e372d3b4ad19135b953a78882e789
Additional Information 3: 0a9e
Additional Information 4: 0a9e372d3b4ad19135b953a78882e789
重要的是要注意,我用ILMerge合并MyApplication.exe
和引用的MyLibrary.dll
装配成一个装配(输出的名称是MyApplication.exe
)。
此外,重要的是要注意,测试机器能够在没有问题的情况下运行.exe,直到我发布了一个向MyApplication项目添加extension method
的更新。
换句话说,之后我加入了扩展方法MyApplication
,然后用ILMerge
的.exe文件合并和.dll,测试机将收到上面的错误(有趣的是,我的开发机可以运行与合并后的.exe文件没问题)。
是否有一个已知问题w/ILMerge和扩展方法?这听起来很奇怪,但这是我的代码中唯一改变的东西。
由于我无法在我的开发机器上重现问题,对于如何解决测试机器上发生的System.TypeLoadException
错误,您有任何建议吗?
系统信息
- 瞄准的.NET Framework 4.0(我所有的测试机器安装了这个)
- ILMerge版本2.12.803
- 开发机:Windows 2008 Server的R2; Visual Studio 2010的专业版
- 客户机:XP,Win7的,Win8的和(所有的人都得到错误)
做些什么版本的.NET框架的客户端机器已经安装?它是3.5还是甚至是客户端版本? – ChrisF
他们都已经安装了4.0,在您的生成机器上安装了 – Jed
,是否安装了.net 4.5? –