为了账号安全,请及时绑定邮箱和手机立即绑定

重复“Microsoft.AspNetCore.Razor.Hosting”

重复“Microsoft.AspNetCore.Razor.Hosting”

PHP
互换的青春 2024-01-20 16:03:50
我正在研究网络核心应用程序。我正在使用 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/
查看完整描述

1 回答

?
陪伴而非守候

TA贡献1757条经验 获得超8个赞

您的存储库中存在多个问题:

  1. 清理您的项目,Jenkins.sln and Jenkins.csproj您的项目中有多个级别。删除无用的内容。

  2. 我和你做了一个测试JenkinsPipeLine\Jenkins\Jenkins

  3. 对于 中的 dockerfile 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-env

WORKDIR /app

COPY *.csproj ./

RUN dotnet restore

COPY . ./

RUN dotnet publish -c Release -o output

# Runtime image

FROM mcr.microsoft.com/dotnet/core/aspnet:2.1

WORKDIR /app

COPY --from=build-env /app/output .

ENTRYPOINT ["dotnet", "jenkins.dll"]

运行命令docker build -t jenkins -f Dockerfile .从JenkinsPipeLine\Jenkins\Jenkins


查看完整回答
反对 回复 2024-01-20
  • 1 回答
  • 0 关注
  • 81 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信