当前位置:硬件测评 > vs2010生成的安装包运行环境_【C++】VS2010生成的程序在安装了vc2010运行库的机器上提示“丢失MSVCR1...

vs2010生成的安装包运行环境_【C++】VS2010生成的程序在安装了vc2010运行库的机器上提示“丢失MSVCR1...

  • 发布:2023-09-16 09:58

阅读目录

VS2010生成安装包制作步骤

回到目录

VS2010生成安装包制作步骤

?

在VS2010中文旗舰版本中生成winForm安装包,可以复制你电脑中的开发环境,避免你忘记了一下配置然后在别的机器上运行不起来。也省去了Framwork的安装。

1.新建安装部署项目

打开VS,菜单栏选择“新建”,选择: 项目->其他项目类型->安装与部署->安装项目或者是安装向导(我选择的是安装向导,如果选择安装项目,可直接到第三步),填写相关信息,点击确定。(详细见图1)图一

2.安装向导

直接点击下一步就OK了

图二

点击下一步之后

点击下一步之后(注意在这里不用选择)

点击下一步之后

点击下一步之后进行完成即可

3.开始制作

双击"应用程序文件夹"在右边的空白处右击,选择添加->文件,将你的做的应用程序的可执行文件和数据库文件添加进来,导入可执行文件的时候会自动把相应的类库和程序集导入进来。如图所示:

然后右击你的可执行文件,创建快捷方式,然后把快捷方式分别剪切或复制到左边的“用户的‘程序’'菜单”和“用户桌面”中。这样安装程序安装安装完成后会在 “开始->程序”和“桌面”上生成程序的快捷方式。

然后右击左边的“应用程序文件夹”在属性对话框中将属性中的"defaultlocation"的路径中的"[manufacturer]"去掉,不然的话做好的安装程序默认安装目录会是“c:/programm file/你的用户名/安装解决方案名称”。

然后打开解决方案管理器,右击你的解决方案名称,在弹出菜单中选择属性。会打开一个窗口,如图所示:

在打开的属性页中,选择“系统必备”,会打开一个新的窗口,如图3.3所示。选上以后,在生成的安装文件包中包含.netframework组件, (这个选项默认是选中的),选中“从与我的应用程序相同的位置下载系统必备组件”单选项。

这里会复制你开发的环境以免安装之后不能运行。(微软太强大了,给我们这些C#程序员带来的方便我们只能以表感谢)。

4.添加卸载程序

双击应用程序文件夹,在其中多添加一个msiexec.exe进去,这个文件在c:/windows/system32文件夹下,

添加进去以后,为了让他更像个卸载程序,把他的名字改成"Uninstall.exe"。然后给他创建一个快捷方式,放到“开始-程序”中,然后选中解决方案,在属性栏中找到ProductCode属性,复制其值,然后找到卸载程序的快捷方式Uninstall.exe,在属性在Aguements属性中输入"/x {ProductCode的值(即刚才复制的值)}"。

5.制作完成

现在打开解决方案文件夹下的debug文件夹,就可以看到生成的安装文件了。

https://www.sychzs.cn/Leo_wl/p/3515098.html

转载于:https://www.sychzs.cn/xihong2014/p/9194635.html

在VS2010开发环境下,对www.sychzs.cn安装包的生成过程进行详细的说明。

①在vs2010 选择新建项目----其他项目类型----安装和部署----Visual Studio Installer----安装项目,如下图所示。

a、输入合适的安装包名称比如XXX_Install,解决方案名称会跟着变化;

b、解决方案,一个是创建解决方案(将新建一个工程解决方案),另外一个是添加到解决方案(将该解决方案添加到已有的工程下)。

② 应用程序文件夹中点右键添加文件:表示添加要打包的文件,添加的文件一般是已经编译过应用程序的debug目录下的文件;

③ 若添加文件放在文件夹下,可以在应用程序文件夹点右键是添加文件夹,如下图所示,

④ 为了在开始菜单和桌面上能看到安装程序,需要创建应用程序的快捷方式,选择应用程序(即可执行文件程序集)点击右键选择创建快捷方式,命名为程序名称。

⑤ 将上面创建的快捷方式移动到用户的“程序”菜单和用户桌面上,同时在快捷方式的属性中选择ICON属性,添加合适的程序显示图标,该图标将作为程序在用户的“程序”菜单和用户桌面上显示的图标。

⑥ 添加卸载程序,选择应用程序文件下点击右键添加文件,在C:\Windows\System32目录下选择msiexec.exe应用程序,同时,安装上面的说明创建msiexec.exe应用程序的快捷方式,同时,点解ICON属性添加合适的图标;

⑦ 要使用msiexec.exe应用程序卸载程序,必须在其Arguments属性中输入/x {F7E7D124-A483-4D2D-B6AE-7FD8EBB9FC32},其中 {F7E7D124-A483-4D2D-B6AE-7FD8EBB9FC32}是程序的ProductCode,如下图所示;

⑧ 将msiexec.exe应用程序快捷方式和应用程序的快捷方式移动到用户的“程序”菜单,为了方便查看,可以讲生成的msiexec.exe应用程序快捷方式和应用程序的快捷方式移动到同一个文件夹下, 如下图所示。

这样,当安装完成程序时,在电脑的程序菜单中,会出现该文件夹,文件夹下包括应用程序的图标和卸载程序的图标,如下图所示。

⑨ 设置安装包的各种属性。

Author:软件作者;

InstallAllUsers:True,指定该包是为所有用户(True)还是只为进行安装的用户安装(False);

Manufacturer:公司名称,指定应用程序或组件制造商的名称;

RemovePreviousVersions:True,安装程序期间是否移除应用程序的早期版本。

另外,安装包的启动条件设置,选择安装包解决方案,点击右键在视图选项中选择启动条件,即.NET Framework的版本。

根据需要,选择合适的启动条件,即.NET Framework的版本。

另外,选择安装包解决方案的属性,在系统必备选项中,选择安装系统必备组件的安装程序,一般包括Microsoft .NET Framework和Windows Installer,同时制定系统必备组件的安装位置,勾选从与我的应用程序相同的位置下载系统必备组件选项(若电脑上已经有Framework可以不用设置这一步)。

⑩ 完成以上配置,点击安装包解决方案www.sychzs.cn教程右键,点击重新生成选项,生成安装包,在解决方案文件夹下下,有生成的安装包安装文件,点击setup.exe即可进行程序的安装。

理论上,如果一台电脑无须安装多大2.5G的VS2010,只要安装了vc2010运行库,也就是安装了vcredist2010_x86.exe和对应的Framework运行库,那么只是你将解决方案所在的文件夹中的Debug文件夹扔到这台机器上,直接双击里面的exe文件就可以运行了。一般情况下,由于用户会在机器上安装软件或者游戏,一般都会不知不觉装好vcredist2010_x86.exe和对应的Framework运行库,直接将Debug的东西以绿色版发布,会比打包成一个setup.exe,,让用户安装,便捷得多。在VC2010将解决方案打包成安装向导具体见《【C++】VS2010将写好的程序打包成安装文件发布》(点击打开链接)。你也舒服,用户也舒服。

但是,如果你的解决方案按照默认属性来,没设置好配置属性,直接将Debug文件夹丢给别人,会提示“丢失MSVCR100D.dll”导致程序无须运行。

MSVCR100D.dll是VS2010才有东西,调试用的dll,而不是vc2010运行库里面的核心dll,MSVCR100.dll。前后少了个D,当然两个dll是完全不同的。此时你有两个解决方法:

一、最没有技术含量的,就是将本机C:\Windows\System32中的MSVCR100.dll,复制到运行机器上同样的位置,但是我们不推荐这种方式。

二、我们将VS2010静态编译。因为使用动态编译,使用VS2010编译的程序在其它系统中运行时经常会出现找不到相关的DLL文件,我们可以使用静态编译的方法把这些运行依赖文件打包到exe中来,以减少对环境的依赖,但不代表用户可以不装vc2010运行库就可以直接运行你的程序,因为MSVCR100.dll还是需要的。

具体设置如下:

一般配置配置两项:项目->配置属性->常规->MFC的使用:在静态库中使用MFC。项目->配置属性->C/C++->代码生成->运行库:选择/MT或者/MD。?

之后,清理一下解决方案,别让它重新生成,即可:

如果在重新生成的时候,报:error LNK2019: 无法解析的外部符号 __imp___CrtDbgReportW的错误,那么所在的项目点右键,选择“属性” -> “配置属性” -> “C/C++” -> “预处理器” -> “预处理定义” 移除_DENUG或将 _DENUG改为NDENUG即可。

这样重新生成之后,解决方案所在文件夹下的Debug文件夹里面的exe,则变成依赖于VC2010运行库了。直接丢个Debug文件夹到已经安装VC2010的机子里面的exe可以直接运行了。

相关文章