By 杜伟 (Intel), 星期一, 12月 27, 2010
您希望创建一个 MSI 安装程序……
从应用打包要求指南 (http://software.intel.com/zh-cn/articles/packaging-requirements) 可以得知,我们必须以 MSI 格式为 Windows 项输入相关内容。我在这方面已经收到了许多帮助请求。下面这个简单的分布式指南有助于您创建 MSI 安装程序。
第 1 步 创建设置和部署项目
创建一个新项目。在您的 Visual Studio IDE 右侧的“Solution Explorer”中右击您的解决方案,选择“Add -> New Project”。在项目类型列表中,选择“Other Project Types -> Setup and Deployment -> Setup Project”。
第 2 步 设置属性
我们希望每个人都知道谁创建了该安装程序。在解决方案浏览器中点击您的新“Setup and Deployment”项目。您现在可以在“Properties”窗口(通常在解决方案浏览器的下方)中看到制造商、作者和标题等设置。根据情况进行填充。
第 3 步 添加项目输出和内容
我们希望包括项目.exe 和所有必须的内容文件。在您的解决方案浏览器中右击您的“Setup and Deployment”项目,选择“View -> File System”。右击“Application Folder”节点并选择“Add -> Project Output”。选择“Primary Output”,这将包括您的.exe 文件。如果您的项目需要图像、音频等内容,请重复该步骤并选择“Content Files”。
* 特别注意:在您的应用项目中,确保所有必须的文件被标记为“Content(内容)”。要实现这一点,可在解决方案浏览器中选择文件,并将“Content”属性设置为“True”。
我们需要包括稍后在快捷方式中使用的图标。右击“Application Folder”节点并选择“Add -> File”。浏览到您的图标文件并点击“OK”。
第 4 步 创建快捷方式
另外一个要求是包括应用快捷方式。这非常简单。在“Setup and Deployment File System”选项卡打开时,在右侧面板右击鼠标以打开相应的菜单。选择“Create New Shortcut”。在该对话框中,导航至“Application Folder”,然后从“Project name” (Active)中选择“Output”。这将使快捷方式指向您的.exe。点击“OK”接受该选择。
为该快捷方式提供一个图标。在右侧面板中点击您刚创建的快捷方式。您可以从“Properties”窗口选择一个图标。点击“Browse”,导航至“Application Folder”,选择您在第 3 步中向“File System”添加的图标。
如果您希望用户“开始”菜单中显示快捷方式,请重复上面的步骤,提交用户的“Programs Menu”节点,而不是用户的“Desktop”节点。
第 5a 步 面向使用 C++ SDK 的应用的C++ 运行时 (CRT)
该步骤对于验证来说十分重要。ATOM SDK 需要 C++ 运行时执行。我们的“Setup and Deployment”项目可以轻松地完成该操作。在您的解决方案浏览器中右击您的“Setup and Deployment”项目,选择“Add -> Merge Module”。您希望添加两个合并模块,一个用于 CRT Release(发布),一个用于 CRT Debug(调试)。标签为:
Microsoft_VC90_CRT_x86.msm
Microsoft_VC90_DebugCRT_x86.msm
* 特别注意:如果您的应用需要额外的合并模块或未自动检测的运行时,请进行添加。
第 5b 步 为使用 .NET SDK 的应用添加额外的文件
如果您正在使用.NET SDK,那么您不需要第 5a 步中显示的 CRT 文件。然而,您需要确保您的应用针对.NET framework 3.5 进行编译。
您的额外文件可能看上去与下图类似。
第 6 步 构建
该练习最简单的部分。右击您的“Setup and Deployment”项目,选择“Build”。如果一切顺利,您的输出文件夹内将有一个正确打包的 MSI,可以上传至应用商店。
关于无提示安装要求的重要信息
验证流程中的一个重要要求是无提示安装您的 MSI。你可以打开命令提示符,并使用 /qn 参数来执行 MSI 进行测试。
您需要从项目中删除下列对话框。
示例: c:\MyApp.msi /qn
如果安装过程中未显示任何用户界面,则说明您成功通过这部分验证。
* 注:/qn 参数的使用还未通过英特尔的验证。
您需要在项目中删除某些对话框。
如果您有什么问题,请随时与我联系。祝你好运!