【发布时间】:2011-08-13 23:42:04
【问题描述】:
我正在尝试编写一个 Visual Studio 扩展,允许我在一个解决方案中发布多个 Web 应用程序,类似于在所有项目上使用一键发布功能。
DTE2 service = (DTE2)this.GetService(typeof(DTE));
Projects projects = service.Solution.Projects;
SolutionBuild2 build = (SolutionBuild2)service.Solution.SolutionBuild;
foreach (Project project in projects)
{
build.PublishProject("Release", project.UniqueName, true);
}
当我尝试运行此代码时,输出窗口中的唯一结果是:
Error: Object reference not set to an instance of an object.
========== Publish: 0 succeeded, 0 failed, 0 skipped ==========
... 这并没有告诉我太多。有没有办法找出问题所在?
我也看到那里有一个接口IVsPublishableProjectCfg,但似乎没有任何如何使用它的示例。
是否有另一种方式以编程方式将 Web 应用程序发布到某个目录,类似于一键发布功能的工作原理?
【问题讨论】:
-
如果你告诉我们哪一行抛出异常可能会有所帮助
-
您是否尝试过使用调试器单步执行?
-
它不会抛出异常。当我尝试在实验性 Visual Studio 中使用扩展时,它只是将该错误消息写到输出窗口。我可以成功地遍历所有行,而不会引发任何异常。
-
当您逐步完成时,它是否真的发布了任何项目?
-
不,它没有。实验 Visual Studio 中的输出窗口包含错误消息,并且没有发布任何项目。
标签: visual-studio-2010 vsx envdte