猿问

重复“Microsoft.AspNetCore.Razor.Hosting”

我正在研究网络核心应用程序。我正在使用 docker 在 jenkins 中构建我的应用程序。我的示例存储库位于

https://github.com/niranjan2020/JenkinsPipeLine

以下是我构建应用程序的命令。

docker build -t jenkinspipeline/jenkins -f Dockerfile .

下面是我的 .csproj。

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


  <PropertyGroup>

    <TargetFramework>netcoreapp2.1</TargetFramework>

    <DockerDefaultTargetOS>Linux</DockerDefaultTargetOS>

   <GenerateAssemblyInfo>false</GenerateAssemblyInfo>


  </PropertyGroup>


  <ItemGroup>

    <Folder Include="wwwroot\" />

  </ItemGroup>


  <ItemGroup>

    <PackageReference Include="Microsoft.AspNetCore.App" />

    <PackageReference Include="Microsoft.AspNetCore.Razor.Design" Version="2.1.2" PrivateAssets="All" />

    <PackageReference Include="Microsoft.VisualStudio.Azure.Containers.Tools.Targets" Version="1.0.2105168" />

  </ItemGroup>


</Project>

当我开始在詹金斯中构建时,出现以下错误


obj/Release/netcoreapp2.1/jenkins.RazorAssemblyInfo.cs(11,12):错误CS0579:重复“Microsoft.AspNetCore.Razor.Hosting.RazorLanguageVersionAttribute”属性[/app/jenkins.csproj] obj/Release/netcoreapp2.1 /jenkins.RazorAssemblyInfo.cs(12,12):错误CS0579:重复“Microsoft.AspNetCore.Razor.Hosting.RazorConfigurationNameAttribute”属性[/app/jenkins.csproj]命令“/bin/sh -c dotnetpublish-cRelease” -o输出'返回非零代码:1


到目前为止我尝试过的是,


删除 bin 和对象文件夹并重建。在.csproj中添加了GenerateAssemblyInfo为 false 重新启动了Jenkins


我添加了以下配置


https://johnkoerner.com/csharp/dealing-with-duplicate-attribute-errors-in-net-core/


互换的青春
浏览 83回答 1
1回答

陪伴而非守候

您的存储库中存在多个问题:清理您的项目,Jenkins.sln and Jenkins.csproj您的项目中有多个级别。删除无用的内容。我和你做了一个测试JenkinsPipeLine\Jenkins\Jenkins对于 中的 dockerfile&nbsp;JenkinsPipeLine\Jenkins\Jenkins,它的镜像是错误的,你的项目目标netcoreapp2.1,你的镜像应该是mcr.microsoft.com/dotnet/core/sdk:2.1。dockerfile 是FROM mcr.microsoft.com/dotnet/core/sdk:2.1 AS build-envWORKDIR /appCOPY *.csproj ./RUN dotnet restoreCOPY . ./RUN dotnet publish -c Release -o output# Runtime imageFROM mcr.microsoft.com/dotnet/core/aspnet:2.1WORKDIR /appCOPY --from=build-env /app/output .ENTRYPOINT ["dotnet", "jenkins.dll"]运行命令docker build -t jenkins -f Dockerfile .从JenkinsPipeLine\Jenkins\Jenkins
随时随地看视频慕课网APP
我要回答