我有一个Web Setup项目安装程序,我想默认网站和在安装过程中选择的应用程序池。另外,我想在安装程序的构建过程中将产品的名称附加到当前版本号。

任何帮助将不胜感激!谢谢

有帮助吗?

解决方案

Visual Studio Web设置项目是一个非常简单(并且不太灵活)的工具。不过,您有一些选择(假设您还没有准备好使用更灵活的东西,例如Wix或商业安装包装产品)。

构建后修改MSI

做您想做的一种方法是在构建MSI文件后修改它。

您可以添加诸如以下内容之类的属性:

  1. 添加一个名称的属性 TARGETSITE 并将其设置为您需要为默认的站点的元库路径。例如, /LM/W3SVC/2.

  2. 添加一个名称的属性 TARGETAPPPOOL 并将其设置为应用程序池的名称,您需要为默认值。例如, MyAppPool.

  3. 您还可以通过编辑现有 ProductName 财产。

可以通过诸如 机构 或Orca(这是 Windows SDK).

另外,您可以创建/查找MSBUILD任务,以获取MSI文件中的属性。这为您提供了一种在自动构建过程中自动进行所需更改的好方法。

使用命令行参数调用

更简单地,您可以使用msiexec.exe从命令行调用安装,并指定值 TARGETSITETARGETAPPPOOL 例如:属性:

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!")
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top