c#开发的winform程序,发布的x64的程序在x64电脑安装时出现未能找到vcredist_x64.exe错误

我是xp,32位系统,用vs2010 c#开发winform程序,发布了x64的程序,结果在其他x64电脑上安装时出现以下错误:未能找到下列包文件:……\vcredist_x64\vcredist_x64.exe
是不是我发布的时候,自己电脑也要安装vcredist_x64文件?
我的程序里面涉及到了水晶报表,在部署的时候已经把合并模块添加进去了,在项目属性--系统必备里面勾选了 VISUAL C++ 2010 运行库。
最后发现发布包里面vcredist_x64为空,于是我下载了vcredist_x64.exe放在里面,安装就没有问题了。

不过运行的时候报错了,内容如下:

是不是水晶报表兼容性有问题呀?。。。。

是的,需要安装,就像发布程序的电脑上要装.Net一样,这也是你程序必须要用的一个组件。追问

如我问题补充,后来我在发布程序里面添加了那个文件,但是运行又有问题了,哪里又出错啦?是不是水晶报表的问题呀?截图在上面。

追答

这个错误是说在创建水晶报表对象的时候出现了错误,说明这个类在系统中没有注册,所以无法声明,你看电脑上是否有那个Dll,有的话试试能不能手动注册一下。
在运行里输入“regsvr32 文件完整路径+文件名”,如“regsvr32 C:\test.dll”

追问

对于水晶报表发布,不采用合并模块,而是直接在用户电脑上安装CRforVS_redist_install_64bit_13_0,就没有运行时的报错,问题得到解决。

追答

嗯,dll设置拷贝到本地只对于一些没有注册信息也能用的dll有效,很多东西这么设置都会出这个问题,尤其水晶报表本身是个付费软件,就算是用微软的,也得注册了才行。
能找到安装包算是你幸运了!恭喜恭喜!

温馨提示:内容为网友见解,仅供参考
第1个回答  2012-12-07
vcredist_x64 是vc++发布包呀。跟.net 程序没有关系的。是不是你的安装包中设置了需要安装vc++环境了。追问

嗯。因为水晶报表才需要vc++的环境。帮我看一下运行时的错误到底是什么错误?

第2个回答  2012-12-07
很想帮你,可惜正处于学习中,即将入行*****
第3个回答  2012-12-07
你没把那个文件添加到发布包里吧?

c#开发的winform程序,发布的x64的程序在x64电脑安装时出现未能找到vcred...
是的,需要安装,就像发布程序的电脑上要装.Net一样,这也是你程序必须要用的一个组件。

C#无法调用C++编的DLL
就跟你说一下吧,你这种是缺少DLL依赖的mainifest导致的;为什么你安装了vcredist还不行,这是因为从VC2005-VC2008,CRT和MFC库都有好几个版本,你们开发用的版本跟你安装的vcredist是不同的版本 那怎么解决这个问题,很简单,从你的开发机器上(就是编译C++ DLL那个开发机)复制对应的DLL就行了,DLL...

用vs2010编写的c#程序,在本机可以打开,生成了exe,在同事的电脑上打不...
只能老老实实把.net4框架装上吧,别无它法.正所谓工欲善其事,必先利其器也.补充一下,也不是没有办法,你折中一下,如果你没有使用.net 3.5,4.0新特性的话,你可以选择2.0版framework来生成程序,这样的话你机子有2.0框架就可以运行程序了,该框架才几十M,安装简捷迅速.还有句话叫杀鸡焉用牛...

由于应用程序配置不正确,应用程序未能启动.重新安装应用程序可能会纠正...
这样生成的exe文件应该就可以在其他机器上跑了。 方法四: 你的vc8安装盘上找到再分发包vcredist_xxx.exe和你的程序捆绑安装 C#调用c++制作的DLL时,一些参数的赋值问题如char *,结构体 c++ dll中的原型 int test(char* xm,char* fa,UINT &VerNum,double Mile,char *SurvMile);c#调用时 [DllImpor...

如何运行在C#中静默安装
使用批处理+WinRAR制作静默安装程序包 echo 安装完窗口会自动关闭!!!echo off start \/wait Lync.exe \/Install \/Silent start \/wait vcredist_x86\/vcredist_x86.exe \/q \/norestart start \/wait DotNetFx40\/dotNetFx40_Full_x86_x64.exe \/q \/norestart start \/wait setup.exe \/qn 以上批处理...

C#发布安装后,COMException (0x800736B1)
你的webkit内核引用进来的时候肯定有个dll,把它添加到“引用”(“References”)里,然后再从新打包。要还不行就试试这个:http:\/\/www.xiazaiba.com\/html\/4261.html (64位的:http:\/\/www.xiazaiba.com\/html\/7354.html)加油 :)

运行程序的时候出现C++错误怎么办
运行程序的时候出现C++错误这样的问题一般是因为DLL文件出错或者VC运行库没有安装导致的,解决方法 一、下载VC运行库进行安装修复,修复后再进行测试。二、以管理员身份运行命令提示符,打开开始菜单,搜索cmd。在命令提示符上单击右键,选择“以管理员身份运行”;在命令提示符中输入以下命令:for %i in (...

相似回答