如何你的程序调用了非托管资源,在开法环境和部分部署环境中运行正常,但在有些部署环境中会出现如下错误,则此文章有可能帮得到你,因为我也是受到了他的折磨~~

 

 例如,在你的程序中通过以下方式调用了第三方的一个非托管资源,在你的开发环境、调试环境或者部分部署环境中都运行正常,但是在某些客户机环境中会提示

“Error:无法加载DLL ”mwrf_bj.dll":由于应用程序配置不正确,应用程序未能启动。重新安装应用程序可能会纠正这个问题。(异常来自:HRESULT:0x800736B1)

[DllImport("mwhrf_bj.dll", EntryPoint = "Open_USB", SetLastError = true,
         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++ 库的运行时组件。

 

 

posted on 2011-05-09 11:15  深挖三尺  阅读(2488)  评论(0编辑  收藏  举报