Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-core/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Microsoft.AspNetCore.App-Azure管道是否与ASP.NET Core配合使用?_C#_Asp.net Core_Azure Pipelines_Dependency Management - Fatal编程技术网

C# Microsoft.AspNetCore.App-Azure管道是否与ASP.NET Core配合使用?

C# Microsoft.AspNetCore.App-Azure管道是否与ASP.NET Core配合使用?,c#,asp.net-core,azure-pipelines,dependency-management,C#,Asp.net Core,Azure Pipelines,Dependency Management,我的问题 如何引用框架“Microsoft.AspNetCore.App”并成功构建Azure管道 上下文 我刚开始使用Azure DevOps,已经达到了我的第一个关键点 我有一个ASP.NET Core 3.1遇到这个问题,只有在Azure DevOps中构建时才遇到。本地建筑很好;应用程序运行良好。我觉得我的管道设置有问题,但我很难确定到底是什么。这是我的错误: SampleClass.cs(69,19):错误CS1705:程序集'Sample',标识'Sample,版本=1.0.0,区域

我的问题

如何引用框架“Microsoft.AspNetCore.App”并成功构建Azure管道

上下文

我刚开始使用Azure DevOps,已经达到了我的第一个关键点

我有一个ASP.NET Core 3.1遇到这个问题,只有在Azure DevOps中构建时才遇到。本地建筑很好;应用程序运行良好。我觉得我的管道设置有问题,但我很难确定到底是什么。这是我的错误:

SampleClass.cs(69,19):错误CS1705:程序集'Sample',标识'Sample,版本=1.0.0,区域性=neutral,PublicKeyToken=null'使用'Microsoft.AspNetCore.Http.Abstractions,版本=3.1.0.0,区域性=neutral,PublicKeyToken=adb9793829ddae60',其版本高于引用的程序集“Microsoft.AspNetCore.Http.Abstractions”,其标识为“Microsoft.AspNetCore.Http.Abstractions,版本=1.0.2.0,区域性=中性,PublicKeyToken=adb9793829ddae60”

示例的项目文件中有问题的依赖项:

<Project Sdk="Microsoft.NET.Sdk.Web">

...    

<PackageReference Include="Microsoft.ApplicationInsights.AspNetCore" Version="2.14.0" />

...    
我认为这是罪魁祸首,因为它排成一行w/:

  • 对Microsoft.NET.Sdk.App的隐式引用解析了版本为3.1.0的Http.Abstraction.dll
  • 包含包参考将解析版本为1.0.2的…Http.Abstraction.dll
因此,这个问题至少得到了解释;磁盘上存在错误的文件-在Azure管道中。在我的本地计算机上,我看到所有3.1.0程序集都安装了框架Microsoft.AspNetCore.App.Ref包。当我删除app insights依赖项时,会出现新的类型错误,表明在生成过程中还原了错误的版本

<>强>为什么我需要考虑为什么在Azure流水线中恢复错误的文件?< /强>

我已经核实了

  • 该生成代理(.NET Core 3.1.0已涵盖)
  • Azure DevOps正在使用的msbuild.exe命令在本地为我成功
  • 删除app insights依赖项不会解决此问题(只会将其更改为“是否缺少程序集”错误)
msbuild.exe“path\to\Sample.sln”/nologo/nr:false/p:DeployOnBuild=true/p:WebPublishMethod=Package/p:packageassingfile=true/p:platform=“any cpu”/p:configuration=“release”/p:VisualStudioVersion=“16.0”


为什么这对我来说在本地可以正常工作,但在其他环境中却失败了?

“Azure Pipelines与ASP.NET Core一起工作吗?”…如果微软不这样做,那将是相当短视的。无论如何,我用过一个,是的,它确实如此。事实上,如果您设置它,它几乎可以与任何语言/平台一起工作。TBH尽管我在发布过程中单击了Visual Studio中的一个按钮,它会自动为我设置整个管道,但不需要配置(除了告诉它要部署到的目标azure web应用程序)。为什么要使用
msbuild.exe
而不是dotnet CLI或内置azure DevOps任务?我“只是在发布过程中单击了Visual Studio中的一个按钮,它自动为我设置了整个管道,不需要配置”,但配置对我的引用不起作用(我不知道为什么)。根据错误“使用”Microsoft.AspNetCore.Http.Abstractions,Version=3.1.0.0“,我还没有看到使用nuget:的版本,请您分享一下您的示例项目是如何使用该软件包的?在这种情况下,我发现切换到使用.NET核心任务(而不是自动生成的nuget/VS任务)更容易。我是通过指向Sdk=“Microsoft.NET.Sdk.Web”(或者我理解的那样)的项目文件隐式引用3.1.0.0的。