如何你的程序调用了非托管资源,在开法环境和部分部署环境中运行正常,但在有些部署环境中会出现如下错误,则此文章有可能帮得到你,因为我也是受到了他的折磨~~
例如,在你的程序中通过以下方式调用了第三方的一个非托管资源,在你的开发环境、调试环境或者部分部署环境中都运行正常,但是在某些客户机环境中会提示
“Error:无法加载DLL ”mwrf_bj.dll":由于应用程序配置不正确,应用程序未能启动。重新安装应用程序可能会纠正这个问题。(异常来自:HRESULT:0x800736B1)
CharSet = CharSet.Auto, ExactSpelling = false ,
CallingConvention = CallingConvention.StdCall)]
public static extern int Open_USB();
出现这个问题,你很有可能会按照错误提示重新安装,但结果还是一样,无法正常运行。
程序出的问题,不会呀,其他机器上可以运行,那应该是客户机环境的问题了。想想你的程序是调用了一些C++写的函数,那么会不会是运行c++的一些环境没有配置起来呢。其实在你的程序发布或打包时除了.Net Framework是必备组件外,如果你调用了第三方的一些类库,还得必须把Visual C++运行库添加上,这样在安装程序时会自动检测当前环境中是否已经安装visual c++运行库并自动进行安装,安装完之后,问题解决。
以下是2005版本的介绍,对应的还有2008等版本信息。
Microsoft Visual C++ 2005 SP1 Redistributable Package (x86) 安装在未安装 Visual C++ 2005 的计算机上运行使用 Visual C++ 开发的应用程序所需的 Visual C++ 库的运行时组件。