发布发布事件

Posted

技术标签:

【中文标题】发布发布事件【英文标题】:Post Publish Events 【发布时间】:2009-09-01 04:53:06 【问题描述】:

对于普通(例如 Windows 窗体)C# 应用程序,要在成功构建后执行命令,我将使用项目属性中的构建事件->构建后事件命令行。

我有一个网站项目,我使用解决方案资源管理器上下文菜单中的“发布...”命令“发布”。

有没有办法在成功发布后运行命令,如果有,它是如何完成的? (例如发布后事件命令行字段)

Visual Studio 2008,ASP .Net 网站项目,C#。

【问题讨论】:

【参考方案1】:

更新:由于 Publish Web 不适用于基于文件夹的网站项目,因此此答案假定您询问的是 Web 应用程序项目。

您不能从 VS IDE 内部执行此操作。但是,您可以在记事本或您喜欢的 XML 编辑器中编辑您的项目文件,并在文件末尾添加一个名为 AfterPublish 的新目标。

如果您不确定在此目标中可以做什么,您可能需要阅读更多关于 MSBuild 的内容。

您可以在 MSDN -HowTo: Extend the Visual Studio Build Process 找到更多关于在 VS 中扩展构建过程的详细信息。

【讨论】:

谢谢,我担心这在 IDE 中是不可能的。这是一个很好的解决方案,因为我们的 CI 使用 msbuild 脚本。我希望我们也可以在 Visual Studio 中做到这一点。我可能会创建一个新的 msbuild 脚本,然后创建一个“外部工具”命令来运行该构建脚本,而不是执行 Visual Studio“发布”。如果可能,宁愿不修改 proj 文件。感谢您的帮助和快速响应! 我投了反对票,因为我不明白这怎么可能是一个被接受的答案。网站没有项目文件。请通过澄清答案或评论为什么接受此答案来帮助我和其他人理解。 这只是混合术语。你是对的 - 基于文件夹的网站项目没有项目文件。但是,此类项目也没有发布命令。另一方面,Web 应用程序项目确实有一个项目文件,并且 Publish Web 命令适用于它们。我的假设是这个问题是指网络应用程序与网站。既然我的回答被接受了,我敢猜测我的假设是正确的。当然,这并不能成为我使用正确术语的借口。 @Franci 我在一个网站项目的上下文中寻找这个。它确实有发布,但没有项目文件,所以这不太正确。 @Ian Grainger - 我的回答已经过去了大约 2 年。从那时起 VS 可能已经改变了...... :-)

以上是关于发布发布事件的主要内容,如果未能解决你的问题,请参考以下文章

spring 自定义事件发布及监听(简单实例)

为啥 CQRS 存储库发布事件,而不是事件存储?

领域事件

事件与委托深入理解

Spring 事件发布监听源码解析

Spring 事件发布监听源码解析