visual-studio-2010 - 以编程方式发布 Web 应用程序

我正在尝试编写一个 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 应用程序发布到特定目录,类似于一键发布功能的工作原理?

最佳答案

执行此操作的另一种方法是模拟单击解决方案资源管理器中右键单击“发布”上下文菜单项,如以下类似问题所示: DTE.ExecuteCommand and wait

请注意,由于这是一个异步命令,您将需要构建逻辑以利用发布后事件来迭代您的项目集合(有关这方面的一些详细信息显示在其中一个答案中)。

https://stackoverflow.com/questions/7053999/

相关文章:

php - php中DOMDocument的编码问题

visual-studio - Visual Studio 安装项目预生成事件

php - PEAR 邮件连接拒绝 smtp.gmail.com

iphone - 在 iOS 上捕获视频时查询最佳像素格式?

visual-studio-2010 - 无法调试 T-SQL 或存储过程

php - 在 ImageMagick 中量化图像时保留 alpha channel ?

django - 在 Django 中动态设置默认表单值

objective-c - 如何在 Objective-C 中调试单例

php - 速率函数的问题

algorithm - 关系型数据库是否可以利用一致性哈希的方式来做分区表?