Есть ли способ выполнить «Обновление зависимостей» в проекте установки за пределами VS2008?
-
09-06-2019 - |
Вопрос
У меня есть решение с несколькими проектами.Один из них — проект установки.Если вы развернете проект установки в обозревателе решений, вы увидите узел «Обнаруженные зависимости».Если щелкнуть по нему правой кнопкой мыши, появится пункт меню «Обновить зависимости».При этом обновляются все зависимости на основе файлов, включенных в установку.
Я спрашиваю, могу ли я выполнить это действие вне Visual Studio, используя devenv.com или MSBuild.
Я хочу этого, потому что я использую CruiseControl.NET для непрерывной интеграции, и в некоторых решениях я обнаружил, что в выходных данных установки отсутствуют некоторые зависимости из-за того, как я автоматически создаю проекты.
Обновлять:
Оказалось, что моя установка не очень совместима с тем, как проекты установки работают в Visual Studio.В итоге я использовал Post Build Events, чтобы создать всю структуру приложения, готовую к простому копированию на компьютер и работе «из коробки».Я больше не использую проекты установки в Visual Studio, если только в этом нет крайней необходимости.
Решение
Запишите или создайте макрос:
Option Strict Off
Option Explicit Off
Imports System
Imports EnvDTE
Imports EnvDTE80
Imports EnvDTE90
Imports System.Diagnostics
Public Module RefreshDependencies
Sub TemporaryMacro()
DTE.ActiveWindow.Object.GetItem("Project\Setup1\Setup1").Select(vsUISelectionType.vsUISelectionTypeSelect)
DTE.ExecuteCommand("Build.RefreshDependencies")
End Sub
End Module
Затем просто вызовите макрос в командной строке:
devenv /command "Macros.MyMacros.RefreshDependency C:\MyProjects\MyApp\"