Visual studio 如何在Azure管道中处理生成后事件?

Visual studio 如何在Azure管道中处理生成后事件?,visual-studio,azure-devops,Visual Studio,Azure Devops,我可以在本地构建解决方案,并且在一个项目中我有构建后事件: xcopy“$(SolutionDir)pluginfolder\bin\Debug\net48\pluginname.*”$(TargetDir)”/Y 我这样做是因为目标项目没有对插件项目的引用 现在我正在尝试转移到Azure管道。我创建了一个MSBuild任务,该任务只生成目标项目而不是完整的解决方案,在自托管代理中运行时出现以下错误: C:\Program Files(x86)\Microsoft Visual Studio\2

我可以在本地构建解决方案,并且在一个项目中我有构建后事件:

xcopy“$(SolutionDir)pluginfolder\bin\Debug\net48\pluginname.*”$(TargetDir)”/Y

我这样做是因为目标项目没有对插件项目的引用

现在我正在尝试转移到Azure管道。我创建了一个MSBuild任务,该任务只生成目标项目而不是完整的解决方案,在自托管代理中运行时出现以下错误:

C:\Program Files(x86)\Microsoft Visual Studio\2019\Community\MSBuild\Current\Bin\Microsoft.Common.CurrentVersion.targets(5266,5):错误MSB3073:命令“xcopy”unfinedPluginFolder\Bin\Debug\net48\pluginname.*“C:\agent\u work\5\s\myproj\Bin”/Y以代码4结束

解决这个问题的最佳方法是什么

"Undefinedpluginfolder\bin\Debug\net48\pluginname.*"
$(SolutionDir)被识别为未定义,这是因为msbuild在生成单个项目时不知道该解决方案

作为解决方法,您可以在PostBuild事件的脚本上方插入以下脚本。类似于:

  <PropertyGroup>
    <ProjectFolder>$([System.IO.Directory]::GetParent($(ProjectDir)))</ProjectFolder>
    <MySolutionDir>$([System.IO.Directory]::GetParent($(ProjectFolder)))\</MySolutionDir>
    It's recommended to add my script and PostBuildEvent in same propertyGroup
    <PostBuildEvent>echo $(MySolutionDir)</PostBuildEvent> 
  </PropertyGroup>
你可以参考类似的问题

xcopy "$(MySolutionDir)pluginfolder\bin\Debug\net48\pluginname.*" "$(TargetDir)" /Y