有没有一种方法可以在VS2008之外的安装项目中执行"刷新依赖项"?

时间:2020-03-05 18:48:09  来源:igfitidea点击:

我有几个项目的解决方案。其中之一是安装项目。如果在解决方案资源管理器中展开安装项目,则会看到"检测到的依赖关系"节点。如果右键单击它,将得到一个名为"刷新依赖关系"的菜单项。这将根据安装程序中包含的文件刷新所有依赖项。

我问我是否可以使用devenv.com或者MSBuild在Visual Studio外部执行此操作。

我想要这个是因为我使用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 /命令" Macros.MyMacros.RefreshDependencies C:\ MyProjects \ MyApp "