Visual Studio MSI安装程序
-
13-09-2019 - |
题
我有一个Web Setup项目安装程序,我想默认网站和在安装过程中选择的应用程序池。另外,我想在安装程序的构建过程中将产品的名称附加到当前版本号。
任何帮助将不胜感激!谢谢
解决方案
Visual Studio Web设置项目是一个非常简单(并且不太灵活)的工具。不过,您有一些选择(假设您还没有准备好使用更灵活的东西,例如Wix或商业安装包装产品)。
构建后修改MSI
做您想做的一种方法是在构建MSI文件后修改它。
您可以添加诸如以下内容之类的属性:
添加一个名称的属性
TARGETSITE
并将其设置为您需要为默认的站点的元库路径。例如,/LM/W3SVC/2
.添加一个名称的属性
TARGETAPPPOOL
并将其设置为应用程序池的名称,您需要为默认值。例如,MyAppPool
.您还可以通过编辑现有
ProductName
财产。
可以通过诸如 机构 或Orca(这是 Windows SDK).
另外,您可以创建/查找MSBUILD任务,以获取MSI文件中的属性。这为您提供了一种在自动构建过程中自动进行所需更改的好方法。
使用命令行参数调用
更简单地,您可以使用msiexec.exe从命令行调用安装,并指定值 TARGETSITE
和 TARGETAPPPOOL
例如:属性:
msiexec /i MySetup.msi TARGETSITE=/LM/W3SVC/2 TARGETAPPPOOL=Pool2
你不能弄乱 ProductName
但是,这样。
其他提示
打开MSI在Orca中。转到属性,右键单击,然后右键单击以添加行。
属性:TargetAppPool值:ASP.NET v4.0
您可以使用此VBS脚本进行相同的操作:
Dim oDatabase 'As WindowsInstaller.Database
Const msiOpenDatabaseModeTransact = 1
Dim oInstaller 'As WindowsInstaller.Installer
Dim sFilePath 'As String
sFilePath = "C:\Test\MySetup.msi"
Set oInstaller = CreateObject("WindowsInstaller.Installer")
Set oDatabase = oInstaller.OpenDatabase(sFilePath, msiOpenDatabaseModeTransact)
sql = "INSERT INTO Property (Property, Value) VALUES ('TARGETAPPPOOL', 'ASP.NET v4.0')"
Dim oView 'As WindowsInstaller.View
Set oView = oDatabase.OpenView(sql)
oView.Execute
oView.Close
oDatabase.Commit
MsgBox ("Done!")
不隶属于 StackOverflow