如何将C#写的东西在没有.net框架的机子上运行。

redv 2002-10-05 05:01:05
我写了个东西;
在我的WIN2KSERVER(装了vistual studio .net)的系统下运行很好,
可是当我在别的没有装.net框架的系统下运行则说少动态链接库,于是我把WIN2KSERVER下的那个少的动态链接库拷贝到程序所在的目录下,然后运行,这时不出现少动态链接库的错误了,但是程序仍无法初始化,提示为:
标题:
.NET Framework Initialization Error
内容为:
Please set registry key HKLM\Software\Microsoft\.NETFramework\InstallRoot to point to the .NET Framework intall location

请问我该这么做才能解决这个问题,不要说叫我重新换个语言写!
...全文
73 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
bigrongshu 2002-10-05
  • 打赏
  • 举报
回复
.net程序必须运行在安装了dotnetframework的环境中

framework的安装程序就在你的安装盘中
lkal4587 2002-10-05
  • 打赏
  • 举报
回复
.NET程序部署到没有安装.NET Framwork的机器之前,
必须首先部署.NET Framwork到目标机器上。

else

your OS is Windows .net
yarshray 2002-10-05
  • 打赏
  • 举报
回复
显然你没有安装.net框架
就是.net!运行时库
TheAres 2002-10-05
  • 打赏
  • 举报
回复
在把.NET程序部署到没有安装.NET Framwork的机器之前,您需要首先部署.NET Framwork (dotnetfx.exe)到目标机器上。

这是MSDN中关于发布程序的说明:
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnnetdep/html/redistdeploy.asp

关于如何制作安装程序,请参考CSND的一个帖子:
邀请高手讨论:怎样使用studio.net制作C#安装程序到非dotNet环境
http://www.csdn.net/expert/topic/894/894155.xml?temp=.5337946

■■■■■ To teach a fish how to swim. ■■■■■
这几天看了很多关于脱离框架运行C#程序的文章,千篇一律,都是讲飞信方案的,此方案涉及一些法律问题,只能自己研究一下,后来用google美国网站搜了一把,看了些文章,无意中发现mono,又用mono关键字到google中国搜了一把,已经有人实现控制台程序脱离.net框架了。 其实就是换mono的公共语言运行时来使用。这样做的好处是体积小,发布免安装。首先,您需要下载mono的最新版。 http://ftp.novell.com/pub/mono/archive/1.9.1/windows-installer/2/mono- 1.9.1-gtksharp-2.10.4-win32-2.exe,安装后,就可以继续进行了。 1、用Visual Studio创建一个Windows应用程序,假设叫做WinApp,并添加一个按钮。 2、编译此项目,得到一个WinApp.exe文件。 3、自己建立一个文件夹WinApp,其中再建立bin和lib这两个文件夹 4、将mono安装文件夹中的bin和lib子文件夹中需要的文件拷贝至刚才建立的那两个文件夹。mono的默认安装位置是:C:\Program Files\Mono-1.9.1 5、将需要运行的exe文件放入WinApp文件夹。 6、调用,可以使用bat批处理来调用,bin\mono.exe WinApp.exe。(其实个VC++的小程序调用最好,可以我很菜) 好了,发个代码上来,有兴趣的朋友可以研究一下,7zip打包后仅3.26MB,却实现了免安装微软庞大的框架。此测试项目我在纯净的虚拟机和本机均测试过,但有个bug,mono对中文路径支持不好,如若有中文路径,则无法运行。我后来又试了用C:\Program Files\Mono-1.9.1\bin\mono.exe来执行,则没有中文路径问题。我觉得缺少了哪个文件,一个一个试着拷贝到WinApp文件夹中,再用批处理来执行,还是错误。后来干脆将整个安装目录的文件全搬到WinApp目录中,执行批处理还是失败,可是用C:\Program Files\Mono-1.9.1\bin\mono.exe来执行就是能成功,百思不得其解啊!究竟少了什么东西呢? 注意:例子中的dll文件已经为最精简,一个都不能缺少,我是用最笨的办法,删除到回收站,运行,重复此过程来确定需要保留哪些dll的。如果你机子上装有.net框架,你当然可以直接运行此程序,或者用bat来运行也可以,效果是不一样的。

110,534

社区成员

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

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

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