我使用VisualStudio2005和vdproj创建一个简单的MSI文件。我需要通过在必财产时,我启动它。

我知道这可以通过命令行,就像这样:msiexec.exe /i foo.msi REINSTALLMODE=amus

然而,如果一个用户选择击msi直接(发射的导),该财产不是通过。这是可以做到这一点通过VS和vdproj?

一些选项,我已经调查了:

  • 当我建MSI通过VS,它还产生一个setup.exe.有没有办法通过必财产,通过这个可能吗?
  • 我安装了鳄鱼,这让我查/编辑性表的MSI。我可以添加这样说,但后来我不得不添加的每一次我做的电脑生成。

谢谢你的任何建议。

有帮助吗?

解决方案

可悲的是,我不能找到一种方式设定其他MSI属性的权利在VStudio.

尽管如此,一个方法,应该是这样的:

  1. 用逆戟鲸以创建一个变换(MST),唯一的变化财产必.(在短期、编辑财产和保存为一个新的转变,然后使用的"生成改变"指令创建的MST。)
  2. 这个转变可以直接应用到你MSI使用 MSITRAN.EXE 命令(可在同一窗户安装SDK你在哪里找到的逆戟鲸).
  3. 你可以:(a)找到一个办法有些工作室是你的MSITRAN命令之后立即MSI建立,或 (b)只是运行MSITRAN手动(从一批文件或等)之后建立但在此之前测试。

其他提示

我发现一个更加自动化的方式做到这一点。

创建一个脚本名为 add_reinstall_prop.js(实例)与如下因素:

set objArgs = WScript.Arguments
set o_installer = CreateObject("WindowsInstaller.Installer")
set o_database = o_Installer.OpenDatabase(objArgs(0), 1)
s_SQL = "INSERT INTO Property (Property, Value) Values( 'REINSTALLMODE', 'amus')"
set o_MSIView = o_DataBase.OpenView( s_SQL)
o_MSIView.Execute
o_DataBase.Commit

增加一个后建立的事件,以安装项目叫剧本如下:

add_reinstall_prop.vbs $(BuiltOuputPath)

这将自动增加的需要的项目的建MSI。然后你可以检查它与逆戟鲸以看到入口是现在加入之后自动生成。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top