Iis 发布.NET web应用程序后是否执行任何MSBuild目标?

Iis 发布.NET web应用程序后是否执行任何MSBuild目标?,iis,msbuild,visual-studio-2019,publish,target,Iis,Msbuild,Visual Studio 2019,Publish,Target,在Visual Studio 2019中发布.NET Web应用程序后,我需要执行一个命令 我在.csproj和.pubxml中尝试了以下自定义目标,但在发布后不会打印任何内容: 根据您的描述,我认为您正在使用一个Net Framework web项目因为框架web发布不包含名为发布的默认目标。但是,Net核心web发布拥有它 对于Net Framework web发布,它是特殊的在生成发布文件夹后,没有运行此类目标。这意味着框架web publish下的所有目标都像PreforePublish

在Visual Studio 2019中发布.NET Web应用程序后,我需要执行一个命令

我在.csproj和.pubxml中尝试了以下自定义目标,但在发布后不会打印任何内容:


根据您的描述,我认为您正在使用一个Net Framework web项目因为框架web发布不包含名为
发布
的默认目标。但是,Net核心web发布拥有它

对于Net Framework web发布,它是特殊的在生成发布文件夹后,没有运行此类目标。这意味着框架web publish下的所有目标都像PreforePublish一样。这很烦人

与net核心web发布相比,旧的框架web发布确实存在许多缺陷

但是我有一个函数,可以使目标在生成发布文件夹后执行

解决方案

1)首先,应该安装名为的nuget包,它是msbuild任务的额外扩展

它有一个名为
AsyncExec
的任务,可以使用以下目标执行。在运行时,它将继续执行发布的后续步骤。您只需使命令休眠一段时间,然后等待生成发布文件夹,这样您就可以修改publish文件夹的内容

2)
xxx.pubxml
文件下写下:

<Target Name="custom step" AfterTargets="GatherAllFilesToPublish">

    <AsyncExec Command="powershell.exe sleep 2;powershell.exe -file xxxxx"></AsyncExec>
          
</Target>

睡眠时间取决于项目的大小以及发布文件夹所需的时间


这个函数在我这边运行得很好。

@LexLi,正如我清楚地写的那样,发布后执行命令是我试图做的,但它不起作用。嗨,关于这个问题有什么更新吗?请检查我的答案是否有用,并让我们知道任何反馈。如果这有助于您处理和理解此问题,请不要忘记。如果没有,请随时通知我们。我们愿意进一步帮助您:)是的,它很有效。伟大的非常感谢<代码>再次澄清一下
睡眠2
-2秒对吗?当然。它的意思是第二个。看见