Установщики Visual Studio MSI - PullRequest
       37

Установщики Visual Studio MSI

8 голосов
/ 05 декабря 2009

У меня есть установщик проекта Web Setup, и я хотел бы по умолчанию использовать сайт и пул приложений, выбранные в процессе установки. Также я хотел бы, чтобы имя продукта добавлялось к текущему номеру версии в процессе сборки установщика.

Любая помощь будет принята с благодарностью! Спасибо

Ответы [ 2 ]

9 голосов
/ 22 декабря 2009

Visual Studio Web Setup Project - довольно простой (и не слишком гибкий) инструмент. Однако у вас есть несколько вариантов (при условии, что вы не готовы перейти на использование чего-то более гибкого, такого как WiX или коммерческий продукт для установки).

Изменить MSI после сборки

Один из способов сделать то, что вы хотите - это изменить файл MSI после его сборки.

Вы можете добавить такие свойства, как:

  1. Добавьте свойство с именем TARGETSITE и задайте для него путь метабазы ​​сайта, который должен использоваться по умолчанию. Например, /LM/W3SVC/2.

  2. Добавьте свойство с именем TARGETAPPPOOL и задайте для него имя пула приложений, которое должно использоваться по умолчанию. Например, MyAppPool.

  3. Вы также можете установить название продукта, отредактировав существующее свойство ProductName.

Внести изменения в файлы MSI можно вручную, используя такие инструменты, как InstEdit или ORCA (который входит в состав Windows SDK ).

Кроме того, вы можете создавать / находить задачи MSBuild для получения и установки свойств в файлах MSI. Это дает вам хороший способ автоматически вносить нужные изменения во время автоматических сборок.

Вызов с аргументами командной строки

Проще говоря, вы можете запустить установку из командной строки, используя msiexec.exe и указав значения для свойств TARGETSITE и TARGETAPPPOOL, например:

msiexec /i MySetup.msi TARGETSITE=/LM/W3SVC/2 TARGETAPPPOOL=Pool2

Вы не можете возиться с ProductName таким образом.

0 голосов
/ 12 сентября 2016

Откройте 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!")
...