我有一个DLL放在一起,被许多应用程序使用。他们在我的开发机器上编译和运行得很好。但是,如果我尝试部署它们,当我尝试运行它时,我只是从Windows获得标准的“你的应用程序崩溃”消息。我想,因为他们是.NET,我可以安装Visual Studio并查看异常是什么。但是一旦我安装Visual Studio,一切正常!我试图识别VS安装并尝试复制它的任何东西(比如某些版本的.NET框架),但是直到安装了visual studio本身之后仍然没有任何工作。我当然不能要求人们安装visual studio来使用我的应用程序。我该怎么办?
答案 0 :(得分:5)
如果您从控制台应用程序引用DLL,它应该在崩溃时将堆栈跟踪转储到控制台......这可能会有所帮助。
另外,请尝试enabling the Fusion log来帮助调试查找引用的问题。
答案 1 :(得分:1)
这很可能是依赖于C运行时库(CRT)的DLL。您需要确保部署DLL的Release版本,无法分发CRT库的调试版本。如果使用/ MD选项进行编译,则还需要将CRT DLL部署到目标计算机。使用/ MT进行编译可以避免这种情况,但如果您在DLL中使用托管代码,则此选项不可用。
答案 2 :(得分:0)
向显示或通过电子邮件发送例外的程序添加try
/ catch
块。
另外,请确保安装了正确版本的.Net。
最后,浏览一下你引用的DLL并确保它们都存在。
答案 3 :(得分:0)
尝试在目标计算机上安装.NET Framework。
答案 4 :(得分:0)
听起来您可能无法在部署期间提供所需的程序集。使用.Net Reflector之类的工具查看。 在另一个问题上The accepted answer给出了具体说明。
答案 5 :(得分:0)
在部署计算机中必须安装Microsoft Visual C++ Redistributable Package