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

6 asp.net-core-mvc azure-devops .net-6.0

在 Azure 构建代理上构建 ASP.NET Core 6 MVC 应用程序时,我收到错误“View Index.cshtml not found”,但在本地构建时,它工作正常。

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

请有人帮助我。

我在 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
Run Code Online (Sandbox Code Playgroud)

该解决方案还有一个 MVC 应用程序正在按预期工作。我交叉验证了 dll,发现 dll 中不提供“AspNetCoreGenerateDocument”部分,该部分通常包含所有与视图相关的信息。

Sch*_*mal 13

几天前我也经历过同样的问题。我怀疑该问题与.net 6.0.2的更新有关。

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

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

<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>
Run Code Online (Sandbox Code Playgroud)

编辑 17.5.2023

今天我们又遇到了这个问题。

以下解决方案对我们有用:

  • 添加Mirosoft.AspNetCore.App为框架参考
    <ItemGroup>
        <FrameworkReference Include="Microsoft.AspNetCore.App" />
    </ItemGroup>
Run Code Online (Sandbox Code Playgroud)
  • 删除上面提到的 PackageReferences

  • 哇,这太棒了!原始帖子描述了与我所遇到的完全相同的症状,但我已经指定了 MSBuild 版本 17.0 的使用,因此从接受的答案中没有任何收获。但只需添加您建议的两个 NuGet 包,它就开始工作了。是什么让你发现了这一点? (2认同)
  • 我刚刚花了 8 个小时试图找出 CICD 管道损坏的原因。这就是答案。我永远不会解决这个问题。贝尼·施马勒(Bene Schmaler),你在我心目中是一个十足的传奇人物!我完全不知道你是怎么解决这个问题的。干得好,一千个谢谢。 (2认同)

Zen*_*Zen 1

请在 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
Run Code Online (Sandbox Code Playgroud)

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