项目bin下的debug 文件夹复制到其他电脑无法运行,在线等....

WANGHUAIDONG47488495 2014-09-21 07:51:03
小弟新手,刚接触c#不久,正在做一个小项目。感觉打包比较麻烦,就debug模式重新生成解决方案了。
在本机双击debug文件夹下的exe文件可以运行,但是把debug文件夹考到其他机器上时,刚开始报了该机器未安装.framework4.o.30319。后来下了.framework4.o装了之后再运行,就弹出:联机检查错误,调试,关闭程序之类的。
各位帮忙看看吧!
...全文
1580 27 打赏 收藏 转发到动态 举报
写回复
用AI写文章
27 条回复
切换为时间正序
请发表友善的回复…
发表回复
Delta 2014-09-22
  • 打赏
  • 举报
回复
路过,支持一下吧。祝早日解决问题。。。
  • 打赏
  • 举报
回复
引用 14 楼 zhi_ai_yaya 的回复:
[quote=引用 12 楼 WANGHUAIDONG47488495 的回复:]
[quote=引用 10 楼 zhi_ai_yaya 的回复:]
还有一个问题,就是操作系统的权限问题,很多问题都可以“以管理员身份运行”就能解决的。

您说的我试了,以管理员身份运行还是不行。
kernetbase.dll出错,我在出错的机器上装了vs2010后就可以跑起来了。
应该还是环境问题,唉,从下午搞到现在....[/quote]

在客户机上部署开发环境是不可取的

如果涉及很多动态链接库(dll)的,一般都在编译的时候,选择静态链接(就是把所有需要的dll都复制到EXE文件的目录下),这样可以保证在客户机上,不依赖于客户机的OS环境。缺点就是打包后的程序大小会大很多。



[/quote]

嗯,dll与exe都在一个文件夹了
我叫小菜菜 2014-09-22
  • 打赏
  • 举报
回复
引用 12 楼 WANGHUAIDONG47488495 的回复:
[quote=引用 10 楼 zhi_ai_yaya 的回复:] 还有一个问题,就是操作系统的权限问题,很多问题都可以“以管理员身份运行”就能解决的。
您说的我试了,以管理员身份运行还是不行。 kernetbase.dll出错,我在出错的机器上装了vs2010后就可以跑起来了。 应该还是环境问题,唉,从下午搞到现在....[/quote] 在客户机上部署开发环境是不可取的 如果涉及很多动态链接库(dll)的,一般都在编译的时候,选择静态链接(就是把所有需要的dll都复制到EXE文件的目录下),这样可以保证在客户机上,不依赖于客户机的OS环境。缺点就是打包后的程序大小会大很多。
  • 打赏
  • 举报
回复
别沉吖
  • 打赏
  • 举报
回复
感谢各位百忙之中耐心解答! 刚刚按照各位大牛所说的方法,又重新检查了一遍,还真是漏的一个dll。 原来昨晚测试的的三台机子之前的同事刚好都手动装过依赖那个dll。 唉,怪小弟做事不够认真,坑了大伙。 在此多谢诸位了。
GreyCandy 2014-09-22
  • 打赏
  • 举报
回复
应该是没有找到你引用的dll吧 试着把相关dll弄过来试试
於黾 2014-09-22
  • 打赏
  • 举报
回复
还有,你引用dll是引用的debug文件夹下的dll,还是引用了其他位置的dll,是静态引用,还是动态引用 如果是静态引用,vs会自动将目标dll复制到debug文件夹下 如果是动态引用,路径中可能没有相关dll
於黾 2014-09-22
  • 打赏
  • 举报
回复
开发环境(系统版本,32位/64位),VS版本,framework版本 运行环境(系统版本,32位/64位),framework版本 说清楚
绿领巾童鞋 2014-09-22
  • 打赏
  • 举报
回复
你的项目,项目-》属性-》应用程序-》目标框架,然后查看框架是否client的,不是client的换成client,然后编译看看是否通过,不能通过就没有办法了...
宝_爸 2014-09-22
  • 打赏
  • 举报
回复
居然有人用这种方法解决了 Have you tried repairing the Adobe installation? Run the System File Checker that scans the of all protected Windows 7 system files and replaces incorrect corrupted, changed/modified, or damaged versions with the correct versions if possible: Click on the Type CMD on Search Left click and Run as Administrator Type SFC /scannow 来自: Windows 7: Faulting module name: KERNELBASE.dll, version: 6.1.7601.18409, time st http://www.sevenforums.com/software/337941-faulting-module-name-kernelbase-dll-version-6-1-7601-18409-time-st.html
sunny906 2014-09-22
  • 打赏
  • 举报
回复
发布的话不要用debug,用release
xian_wwq 2014-09-22
  • 打赏
  • 举报
回复
异常捕获这么加


     Application.ThreadException += new System.Threading.ThreadExceptionEventHandler(Application_ThreadException);
     AppDomain.CurrentDomain.UnhandledException += new UnhandledExceptionEventHandler(CurrentDomain_UnhandledException);
                Application.Run(new Form1());
估计还是依赖的dll不全导致的, 应该先用Depends查下依赖的基础Dll 还有,现场运行最好是Release版本
Street煎饼 2014-09-22
  • 打赏
  • 举报
回复
就是缺少需要引用的DLL,用release生成,并把所有引用设置为复制到本地。
桂圆214 2014-09-22
  • 打赏
  • 举报
回复
  • 打赏
  • 举报
回复
引用 10 楼 zhi_ai_yaya 的回复:
还有一个问题,就是操作系统的权限问题,很多问题都可以“以管理员身份运行”就能解决的。
您说的我试了,以管理员身份运行还是不行。 kernetbase.dll出错,我在出错的机器上装了vs2010后就可以跑起来了。 应该还是环境问题,唉,从下午搞到现在....
  • 打赏
  • 举报
回复
引用 8 楼 andywangguanxi 的回复:
什么类型项目?简单的winform程序,直接拷贝debug到安装了.netframework的机器上运行时没问题的。你是否引用了其他外部组件之类的
就是简单的winform程序,添加了Nhibernate,NVelocity,System.Data.SQLite,这些我dll都拷贝过去,就是其他机器如果装了vs2010的是可以跑起来的。 没装的话跑起来就报上面的错误。
我叫小菜菜 2014-09-21
  • 打赏
  • 举报
回复
还有一个问题,就是操作系统的权限问题,很多问题都可以“以管理员身份运行”就能解决的。
我叫小菜菜 2014-09-21
  • 打赏
  • 举报
回复
引用 7 楼 WANGHUAIDONG47488495 的回复:
加了捕获异常到文件的,可是没有异常出现。 双击时就报了这个
kernetbase.dll出错: 这应该不是程序本身的问题,而是操作系统和安装的组件的问题 百度百科:kernetbase.dll 重新安装相关的程序,就可以解决这个问题了,debug下的文件夹直接复制,是可以运行的,只要相应的dll调用都正确即可。 如果是程序出错,那么错误模块提示:将会变成自定义的dll: 比如 xxxx.dll出错。。。。这里xxxx是程序中生成的类库,编译成dll动态链接库的。
EdsionWang 2014-09-21
  • 打赏
  • 举报
回复
什么类型项目?简单的winform程序,直接拷贝debug到安装了.netframework的机器上运行时没问题的。你是否引用了其他外部组件之类的
  • 打赏
  • 举报
回复
引用 6 楼 sp1234 的回复:
[quote=引用 楼主 WANGHUAIDONG47488495 的回复:]
小弟新手,刚接触c#不久,正在做一个小项目。感觉打包比较麻烦,就debug模式重新生成解决方案了。
在本机双击debug文件夹下的exe文件可以运行,但是把debug文件夹考到其他机器上时,刚开始报了该机器未安装.framework4.o.30319。后来下了.framework4.o装了之后再运行,就弹出:联机检查错误,调试,关闭程序之类的。
各位帮忙看看吧!


你的程序可能有错误。

在程序进程最外层捕获异常,并打印到文件中。

贴出图来。[/quote]

加了捕获异常到文件的,可是没有异常出现。
双击时就报了这个
加载更多回复(6)
keil和proteus联调 首先,你要下载安装这两个软件了。Proteus可以到官方网站(http://www.labcenter.co.uk/)下载试用板(试用版无存盘功能),最新版本是6.5。Keil也可以到它的官方网站(www.keil.com)去下载它的demo板(有2K代码限制),最新的版本是7.20。下载后就可以安装了。 第二步,安装完毕,把C:\Program Files\Labcenter Electronics\Proteus 6 Professional\MODELS\目录下的 VDM51.dll文件复制到 C:\Keil\C51\BIN文件夹下。(目录名都是默认的,你可以根据你实际安装的目录进行复制。) 第三步,用记事本(其它的编辑软件也可以,如Ultra Edit。)打开Keil 根目录下的 TOOLS.INI 文件,在[C51] 栏目下加入“TDRV3=BIN\VDM51.DLL ("Proteus VSM Monitor-51 Driver") ”(引号不要输入),其中“TDRV3” 中的 “3”要根据实际情况写,不要和原来的重复。 第四步,keil的设置。为了让读者更好的了解这个过程,笔者以Proteus自带的例子来说明。把“C:\Program Files\Labcenter Electronics\Proteus 6 Professional\SAMPLES”的“8051 LCD Driver”文件夹复制到新建的Proteus文件夹下。运行keil程序,在“8051 LCD Driver”文件夹下建立一个新的名为8051 LCD Driver工程。单片机的型号选择AT89C52就可以,把LCDDEMO 文件加到“Source Group 1”组里。点击工具栏的“option for target”按钮,如图1所示。 在出现的对话框里点击“Debug”,在右栏上部的下拉菜单里选中“ Proteus VSM Monitor-51 Driver”,还要点击一下Use前面的小圆点。 设置好的情形如图2所示。 再点击“Setting”设置通信接口,在Host后面添上“127.0.0.1”,如果你是用的不是同一台电脑,在这里添上另一台电脑的IP地址(另一台电脑安装Proteus)。 在Port后面添上“8000”。设置好的情形如图3所示,点击“OK”按钮即可。最后把工程编译一下。 第五步,Proteus的设置。运行Proteus的ISIS,鼠标左键点击菜单“DEBUG”,选中“use romote debuger monitor”

111,086

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧