0

我正在开发一个 C# 应用程序,并且在安装了 Visual Studio 的操作系统上运行良好。
如果我将可执行文件带到任何其他操作系统,它会在执行时崩溃。
我怎样才能知道究竟缺少什么以便我可以解决问题?
在这种情况下更准确地说,我使用了一些 Telerik 组件,我注意到在可执行文件旁边已经有几个与之相关的 Dll。
我还为 Visual Studio 2010 安装了 Crystal Report,因为项目中有报告(在 CR 2008 中),尽管到目前为止我还没有使用它们。(我也尝试安装

SAP_Crystal_Reports_runtime_engine_for_.NET_Framework_4_32bit

CRforVS_redist_install_32bit_13_0_1

在应用程序失败的这些系统上。但同样没有运气。

如果我能知道究竟缺少什么,我就可以知道我正在处理什么并直接解决问题

4

4 回答 4

3

一种选择是使用Fusion 日志查看器查看目标机器上的程序集绑定信息。任何程序集绑定失败都会被记录下来,您可以看到哪些程序集加载失败,以及运行时在哪里寻找它们。

于 2012-09-16T17:32:07.330 回答
1

查看您的参考文献列表。框架中不标准的任何内容,设置引用的属性以将程序集复制到构建目录。]

此外,请确保您在项目属性中构建正确的处理器架构。

于 2012-09-16T17:23:32.513 回答
1

检查目标机器的事件日志。可能缺少一些依赖项。请参阅依赖项。如果由于应用程序中的异常而崩溃,则在应用程序异常事件中捕获该异常。

于 2012-09-16T17:28:03.927 回答
1

我认为您可以为此使用AssemblyResolve事件

AppDomain.CurrentDomain.AssemblyResolve += (object sender, ResolveEventArgs args)=>
    {
        string assemblyToResove = args.Name;
        //return Assembly.Load(....);
    };
于 2012-09-16T17:59:36.660 回答