Есть ли способ выполнить «Обновление зависимостей» в проекте установки вне VS2008? - PullRequest
6 голосов
/ 05 сентября 2008

У меня есть решение с несколькими проектами. Одним из них является проект установки. Если развернуть проект установки в обозревателе решений, вы увидите узел Обнаруженные зависимости. Если вы щелкните по нему правой кнопкой мыши, вы получите пункт меню под названием Refresh Dependencies. Это обновляет все зависимости, основанные на файлах, включенных в установку.

Я спрашиваю, могу ли я выполнить это действие вне Visual Studio, используя devenv.com или MSBuild.

Я хочу этого, потому что я использую CruiseControl.NET для непрерывной интеграции, и в некоторых решениях я обнаружил, что в выходных данных установки отсутствуют некоторые зависимости из-за способа автоматического построения проектов.

Обновление:

Оказалось, что мои настройки не очень дружелюбны к тому, как проекты установки работают в Visual Studio. В итоге я использовал Post Build Events, чтобы создать всю структуру приложения, готовую к тому, чтобы ее можно было просто скопировать на компьютер и работать из коробки. Я больше не использую проекты установки в Visual Studio, если только мне это не нужно.

1 Ответ

2 голосов
/ 05 сентября 2008

Запись или создание макроса:

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 / команда "Macros.MyMacros.RefreshDependencies C: \ MyProjects \ MyApp \"

...