-
20-09-2019 - |
题
我使用VisualStudio2005和vdproj创建一个简单的MSI文件。我需要通过在必财产时,我启动它。
我知道这可以通过命令行,就像这样:msiexec.exe /i foo.msi REINSTALLMODE=amus
然而,如果一个用户选择击msi直接(发射的导),该财产不是通过。这是可以做到这一点通过VS和vdproj?
一些选项,我已经调查了:
- 当我建MSI通过VS,它还产生一个setup.exe.有没有办法通过必财产,通过这个可能吗?
- 我安装了鳄鱼,这让我查/编辑性表的MSI。我可以添加这样说,但后来我不得不添加的每一次我做的电脑生成。
谢谢你的任何建议。
解决方案
可悲的是,我不能找到一种方式设定其他MSI属性的权利在VStudio.
尽管如此,一个方法,应该是这样的:
- 用逆戟鲸以创建一个变换(MST),唯一的变化财产必.(在短期、编辑财产和保存为一个新的转变,然后使用的"生成改变"指令创建的MST。)
- 这个转变可以直接应用到你MSI使用 MSITRAN.EXE 命令(可在同一窗户安装SDK你在哪里找到的逆戟鲸).
- 你可以:(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。然后你可以检查它与逆戟鲸以看到入口是现在加入之后自动生成。
不隶属于 StackOverflow