在.Net中解压缩MSI

时间:2008-11-11 15:20:14

标签: c# .net installer installation

我有一个安装程序,可以将Web服务部署到IIS。在此之后finshed自定义操作触发,使用webservices所需的脚本更新数据库。这些脚本目前正在部署到IIS,因为它们是.net项目的一部分。如何配置安装过程以使脚本不属于项目并从MSI中解压缩,以便我的自定义操作可以访问它们?

2 个答案:

答案 0 :(得分:2)

如果您使用的是标准的Visual Studio安装项目,请执行以下操作:

  1. 将脚本作为文件添加到安装项目中
  2. 右键单击文件
  3. 选择“属性”
  4. 将“PackageAs”属性更改为“vsdpaLoose”
  5. 您的文件现在将与MSI一起输出,以便随时可用。

答案 1 :(得分:0)

使用WIX,不知道你在使用什么。我会创建一个

<Binary Id="webServiceScript.sql" src="[DirectoryToFile]\webServiceDataScript.sql" />

设置CA以运行脚本

<CustomAction Id="CallCmd" Value="[Path_to_Exe_Folder][Your_EXE_TO_RUN_SCRIPT_HERE]" />

<CustomAction Id="RunCmd" ExeCommand="webServiceScript.sql" BinaryKey="webServiceScript.sql" Return="Ignore" />

然后只需设置安装顺序

<InstallExecuteSequence>
  <Custom Action="CallCmd" Before="InstallFinalize" />
  <Custom Action="RunCmd" After="CallCmd" />
</InstallExecuteSequence>