locked
FAQs: Setup.msi和Setup.exe有什么不同? RRS feed

  • 问题

  • 为了帮助大家更好地学习 .Net Framework 技术,微软论坛技术支持团队编辑了一些列的 ".Net Framework 常见问题及解答" 精华帖。

    本帖的主题是:Setup.msi和Setup.exe有什么不同?

    如果您觉得这个帖子对您的学习、工作有所帮助,请再把这个帖子分享给你的同学、同事和朋友。

    如果您想阅读更多的 ".Net Framework 常见问题及解答",请打开索引页面:
    http://social.msdn.microsoft.com/Forums/zh-CN/2212/thread/f2a90155-c760-4d5d-ba2e-6b0e427cb6eb


    如果您对我们的论坛在线支持服务有任何的意见或建议,请通过邮件告诉我们。
    2011年2月15日 13:16

答案

  •  不同之处:

    1)点击Setup.exe文件来实现安装:

    Setup.exe是一个安装引导程序。它是安装工程通过MSBuild创建的,其中包含了一个XML文件,定义了应用程序所需要的系统必备安装包信息。Setup.exe程序会检查这些系统必备安装包是否需要被下载和装,如果需要,它就会先安装那些系统必备程序。当我们运行它的时候,它会读取setup.ini来确定安装所需要的配置并开始安装流程。

    如果这个setup.exe是在Visual Studio 2005中生成的,那么用户就必须有管理员权限才能运行它。我们可以看见在setup.exe的图标上有一个防护盾,这就意味着这个程序只有管理员才能运行它。如果这个setup.exe是在Visual Studio 2008中生成的,那么用户不一定需要有管理员的权限就能执行它,当有一些特定操作需要管理员的权限时,系统会显示UAC对话框要求提升权限。这类Setup.exe的图标上不会显示防护盾。

    2)点击setup.msi来进行安装。

    Setup.msi是一个Windows Installer包。setup.exe不一样,直接运行MSI安装包就不会自动安装自定义系统必备。它只会安装主应用程序。在安装项目的属性对话框中修改输出文件的名字,我们可以自定义MSI包的文件名。当我们“运行”它的时候,其实是Windows Installer在执行MSI包定义的各项操作。因此我们需要安装Windows Installer的正确版本才能运行setup.msi。我们也可以使用msiexec命令去安装setup.msi文件。要得到详细的msiexec命令的信息,请参考:http://msdn.microsoft.com/en-us/library/aa372024(VS.85).asp

    相关帖子:

    http://social.msdn.microsoft.com/forums/en-US/winformssetup/thread/3a897533-e9d8-481a-9ea3-1205f427bfb2/
    http://social.msdn.microsoft.com/forums/en-US/winformssetup/thread/d68a76d7-eb17-441e-aa37-5c2b81b7281d/

    这里有两个关于引导程序的博客,可以帮助你理解什么时引导程序:

    http://blogs.msdn.com/chrsmith/archive/2005/05/06/The-way-it-really-is.aspx

    http://blogs.msdn.com/misampso/archive/2004/03/11/88402.aspx
    如果您对我们的论坛在线支持服务有任何的意见或建议,请通过邮件告诉我们。
    2011年2月15日 13:17