C# 有没有一种方法可以执行“一个”;“刷新依赖项”;在VS2008之外的安装项目中?

C# 有没有一种方法可以执行“一个”;“刷新依赖项”;在VS2008之外的安装项目中?,c#,visual-studio-2008,msbuild,installation,cruisecontrol.net,C#,Visual Studio 2008,Msbuild,Installation,Cruisecontrol.net,我有几个项目的解决方案。其中之一是安装项目。如果在解决方案资源管理器中展开安装项目,则会看到检测到的依赖项节点。如果您右键单击它,就会得到一个名为“刷新依赖项”的菜单项。这将根据设置中包含的文件刷新任何依赖项 我询问是否可以在Visual Studio外部使用devenv.com或MSBuild执行此操作 我之所以这样做,是因为我正在使用CruiseControl.NET进行持续集成,在一些解决方案中,我发现由于我自动构建项目的方式,安装输出缺少一些依赖项 更新: 事实证明,我的设置对Visua

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

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

我之所以这样做,是因为我正在使用CruiseControl.NET进行持续集成,在一些解决方案中,我发现由于我自动构建项目的方式,安装输出缺少一些依赖项

更新:


事实证明,我的设置对VisualStudio中安装项目的工作方式不是很友好。最后,我使用构建后事件来创建整个应用程序结构,只需将其复制到计算机上即可开箱即用。我不再在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.C:\MyProjects\MyApp\”