在 Azure 构建代理上构建时,找不到 ASP.NET Core 6 MVC 应用程序的错误视图 Index.cshtml

Error view Index.cshtml not found for ASP.NET Core 6 MVC app when build on Azure build agent

我的 ASP.NET Core 6 MVC 应用程序在 Azure 构建代理上构建时出现错误“未找到视图 Index.cshtml”,但在本地构建时,它工作正常。

我尝试了在构建代理上执行的相同命令仍然无法解决问题。尝试了几次代码更改来解决此问题,但仍然没有任何线索。甚至在 Whosebug 上也在网上搜索,但遗憾的是没有解决方案。

请有人帮助我。

我在 pipeline.yaml 中使用以下输入:

      solution: 'src/Indl.Web.Core.sln'
      msbuildArgs: '/property:OutDir="$(BUILD.BINARIESDIRECTORY)"\x64\ /p:RunWixToolsOutOfProc=true /p:PackageVersion=$(GitVersion.SemVer) /p:SASigning=true /p:SACertificate=prod.prot /p:PackageOutputPath="$(BUILD.BINARIESDIRECTORY)"\x64\'
      platform: 'x64'
      vsVersion: '16.0'
      configuration: 'Release'
      clean: true
      msbuildArchitecture: 'x64

该解决方案还有一个按预期工作的 mvc 应用程序。 我交叉验证了 dll,发现 'AspNetCoreGeneratedDocument' 部分在通常包含所有视图相关信息的 dll 中不可用。

请在pipeline.yaml中使用以下命令 希望它能奏效。

solution: 'src/Indl.Web.Core.sln'
  msbuildArgs: '/property:OutDir="$(BUILD.BINARIESDIRECTORY)"\x64\ /p:RunWixToolsOutOfProc=true /p:PackageVersion=$(GitVersion.SemVer) /p:SASigning=true /p:SACertificate=prod.prot /p:PackageOutputPath="$(BUILD.BINARIESDIRECTORY)"\x64\'
  platform: 'x64'
  vsVersion: '17.0'
  configuration: 'Release'
  clean: true
  msbuildArchitecture: 'x64

实际上您使用的是 vs 2019(16.0) 的 vsVersion,但由于您正在编译 .Net 6.0,vs 2022(17.0) 完全支持它

几天前我遇到了同样的问题。我怀疑问题与.net 6.0.2 的更新有关。

似乎随着更新,软件包“Microsoft.CodeAnalysis.Compilers”和 'Microsoft.Net.Compilers.Toolset' 丢失了。

将以下行添加到包含 .cshtml/.html 文件的所有项目后,一切都按预期工作,文件在 DLL 的 AspNetCoreGeneratedDocument 下可用。

<PackageReference Include="Microsoft.CodeAnalysis.Compilers" Version="4.1.0" />
<PackageReference Include="Microsoft.Net.Compilers.Toolset" Version="4.1.0">
    <PrivateAssets>all</PrivateAssets>
    <IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageReference>