gpt4 book ai didi

asp.net - pubxml web 发布工具 事件生命周期

转载 作者:行者123 更新时间:2023-12-04 18:39:58 25 4
gpt4 key购买 nike

我正在使用 Visual Studio 2012 中的 Web 发布工具发布到文件系统。我了解到我可以在 Properties 文件夹中打开我的 *.pubxml 来做更高级的事情。

我想要做的是在发布任务结束时运行命令行应用程序。
我通常会在自定义目标中执行它,并在这样的事件中构建之一之后执行它。

 <Target Name="CustomAfterPublish" AfterTargets="GatherAllFilesToPublish">
</Target>

问题是 GatherAllFilesToPublish太早了,因为我想在发布完成后最后执行它。
是否有一个列表或者是否有人知道内置事件以及它们被触发的顺序?基本上是文件系统网络发布的事件生命周期。

或者我如何在最后手动触发目标?

我尝试了以下但没有成功:
<Target Name="Msg" AfterTargets="PipelineDeployPhase;MSDeployPublish;Package">

而且每个人都是单独的。
那么发布生命周期的最后一个钩子(Hook)是什么?

---> 已编辑
我已经添加了跟踪。问题是文件被复制到临时路径,然后所有文件都被删除。所以在 "GatherAllFilesToPublish"之后复制到目的地就不行了在此处从命令行窗口查看我的跟踪...
1>------ Build started: Project: Dependency of a project: Release Any CPU ------
2>------ Build started: Project: Dependency of another project, Configuration: Release Any CPU ------


3>------ Build started: Project: Web, Configuration: Release Any CPU ------
4>------ Publish started: Project: Web, Configuration: Release Any CPU ------
4>Transformed Web.config using C:\...\Web.Release.config into obj\Release\TransformWebConfig\transformed\Web.config.
4>Copying all files to temporary location below for package/publish:
4>obj\Release\Package\PackageTmp.

**<------------- Here is the place where my excutable is called ---------------------------------**


4>Deleting existing files...
4>Publishing folder /...
4>Publishing folder App_Browsers...
4>Publishing folder App_Themes...
4>Publishing folder bin...

4>Site was published successfully file:///C:/Test
4>
========== Build: 3 succeeded, 0 failed, 1 up-to-date, 0 skipped ==========
========== Publish: 1 succeeded, 0 failed, 0 skipped ==========

谢谢你的帮助。

最佳答案

据我所知GatherAllFilesToPublish是最后一个可用的事件。但是,根据您的要求,您可能仍然可以使用此事件。

您可以将写入到以下位置的中间文件作为目标,而不是对最终发布位置的文件执行操作(其中 ProjectDir 显然是您项目的文件夹)

/ProjectDir/obj/Release/Package/PackageTmp/



似乎 Visual Studio 直接复制了该目录中的所有文件。因此,当连接到 GatherAllFilesToPublish 时您应该能够对此目录中的文件进行任何更改,它们将反射(reflect)在最终的发布位置。

相关信息

如果您想验证 GatherAllFilesToPublish确实是您可以通过启用诊断构建输出自己执行此操作的最后一个事件。

Tools -> Options -> Projects and Solutions -> Build and Run -> MSBuild project build output verbosity -> Diagnostic



构建项目并搜索完成构建目标“GatherAllFilesToPublish”,对我来说,这是它开始将文件复制到发布位置之前的最后一个触发器。

关于asp.net - pubxml web 发布工具 事件生命周期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28409352/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com