我正在使用C#中的应用程序,并且在安装了Visual Studio的操作系统上运行正常
如果我将可执行文件带到任何其他操作系统,它会在执行时崩溃
我怎么知道究竟缺少了什么才能解决问题呢?
为了更精确地说明这种情况,我使用了一些Telerik组件,我注意到可执行文件旁边已经有几个与它相关的Dll。
我还安装了Crystal Report for Visual Studio 2010,因为项目中有报告(在CR 2008中),但到目前为止我还没有使用它们。(我也尝试过安装
SAP_Crystal_Reports_runtime_engine_for_.NET_Framework_4_32bit
并且
CRforVS_redist_install_32bit_13_0_1
在这些应用程序失败的系统上。但再次没有运气。
如果我能够知道到底缺少什么,我可以知道我在处理什么,并直接前往并解决问题
答案 0 :(得分:3)
一种选择是使用Fusion log viewer查看目标计算机上的程序集绑定信息。将记录任何程序集绑定失败,您可以查看哪些程序集无法加载,以及运行时正在查找它们。
答案 1 :(得分:1)
浏览您的参考列表。框架中不标准的任何内容,设置引用的属性以将程序集复制到构建目录。]
此外,请确保在项目属性中构建正确的处理器体系结构。
答案 2 :(得分:1)
检查目标机器的事件日志。可能缺少某些依赖项。参考Dependecies。如果由于应用程序中的异常而导致崩溃,请在应用程序异常事件中捕获。
答案 3 :(得分:1)
我认为您可以在此
中使用AssemblyResolve事件AppDomain.CurrentDomain.AssemblyResolve += (object sender, ResolveEventArgs args)=>
{
string assemblyToResove = args.Name;
//return Assembly.Load(....);
};