Azure管道:未找到错误MSB4019 WebApplication.targets

Azure管道:未找到错误MSB4019 WebApplication.targets,azure,azure-pipelines,Azure,Azure Pipelines,我创建了一个episerver alloy项目,在设置了一些nuget软件包之后,该项目在visual studio中构建并运行良好,我可以部署到azure并从VS在azure中运行,而不会出现问题 我现在正试图让构建在管道中工作 按照说明,我添加了一个“nuget restore”任务,并将其指向一个nuget.config。 这很有效 然后进入构建阶段,并给出: D:\a\1\s\DxcAlloy.csproj(335,3):错误MSB4019:未找到导入的项目“C:\Program Fil

我创建了一个episerver alloy项目,在设置了一些nuget软件包之后,该项目在visual studio中构建并运行良好,我可以部署到azure并从VS在azure中运行,而不会出现问题

我现在正试图让构建在管道中工作

按照说明,我添加了一个“nuget restore”任务,并将其指向一个nuget.config。 这很有效

然后进入构建阶段,并给出:

D:\a\1\s\DxcAlloy.csproj(335,3):错误MSB4019:未找到导入的项目“C:\Program Files\dotnet\sdk\3.1.202\Microsoft\VisualStudio\v16.0\WebApplications\Microsoft.WebApplication.targets”。确认导入声明“C:\Program Files\dotnet\sdk\3.1.202\Microsoft\VisualStudio\v16.0\WebApplications\Microsoft.WebApplication.targets”中的表达式正确,并且该文件存在于磁盘上

我不知道如何调试这个。一些帖子说,如果您没有安装visual studio,可能会发生错误,但我无法在azure管道上安装visual studio

我删除了现有的“.net restore”任务,因为它失败了,我猜我只需要我的nuget恢复,这只是一个猜测

管道“代理规范”为vs2017-win16

该项目创建于2019年

在绝望中,我添加了一个“Use.NET core”任务,并将版本设置为build正在抱怨缺少的版本,即3.1.202

这没用


有什么想法吗?

如果您使用
dotnet build
任务构建项目。.csproj文件中的以下配置将评估为
C:\Program Files\dotnet\sdk\3.1.202\Microsoft\VisualStudio\v16.0\WebApplications\Microsoft.WebApplication.targets
(从错误中看到的内容)

$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v16.0

Microsoft.WebApplication.targets通常位于以下位置。这就是它出错的原因。
…未找到Microsoft.WebApplication.targets

在Visual Studio 2017中
“C:\Program Files(x86)\Microsoft Visual Studio\2017\Enterprise\MSBuild\Microsoft\VisualStudio\v15.0\WebApplications\Microsoft.WebApplication.targets”

在Visual Studio 2019中
“C:\Program Files(x86)\Microsoft Visual Studio\2019\Enterprise\MSBuild\Microsoft\VisualStudio\v16.0\WebApplications\Microsoft.WebApplication.targets”

上述问题的解决方法是使用task或task来构建项目。请参见以下示例:

- task: VSBuild@1
    inputs:
      solution: '**/*.csproj'
    enabled: true
对于您的情况,您还需要将代理规范设置为代理
windows最新版本
。对于visual studio 2019(
v16.0
)仅安装在代理
windows最新版本中

如果必须在代理“vs2017-win16”上运行管道(仅安装了visual studio 2017(
v15.0
)。您需要将.csproj文件中的
VSToolsPath
更改为
$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v15.0

如果必须使用
dotnet build
来构建项目。您可以将csproj文件中的导入路径硬编码为变通方法


如果您使用
dotnet build
任务构建项目。.csproj文件中的以下配置将评估为
C:\Program Files\dotnet\sdk\3.1.202\Microsoft\VisualStudio\v16.0\WebApplications\Microsoft.WebApplication.targets
(从错误中看到的内容)

$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v16.0

Microsoft.WebApplication.targets通常位于以下位置。这就是它出错的原因。
…未找到Microsoft.WebApplication.targets

在Visual Studio 2017中
“C:\Program Files(x86)\Microsoft Visual Studio\2017\Enterprise\MSBuild\Microsoft\VisualStudio\v15.0\WebApplications\Microsoft.WebApplication.targets”

在Visual Studio 2019中
“C:\Program Files(x86)\Microsoft Visual Studio\2019\Enterprise\MSBuild\Microsoft\VisualStudio\v16.0\WebApplications\Microsoft.WebApplication.targets”

上述问题的解决方法是使用task或task来构建项目。请参见以下示例:

- task: VSBuild@1
    inputs:
      solution: '**/*.csproj'
    enabled: true
对于您的情况,您还需要将代理规范设置为代理
windows最新版本
。对于visual studio 2019(
v16.0
)仅安装在代理
windows最新版本中

如果必须在代理“vs2017-win16”上运行管道(仅安装了visual studio 2017(
v15.0
)。您需要将.csproj文件中的
VSToolsPath
更改为
$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v15.0

如果必须使用
dotnet build
来构建项目。您可以将csproj文件中的导入路径硬编码为变通方法


MSBuild和Visual Studio生成任务对我的情况都没有帮助……如果有机会,您能在这里查看我的帖子吗?MSBuild和Visual Studio生成任务对我的情况都没有帮助…如果有机会,请查看我的帖子好吗?