Дублируйте атрибут «Microsoft.AspNetCore.Razor.Hosting.RazorLanguageVersionAttribute» - PullRequest
0 голосов
/ 28 сентября 2019

Я работаю над приложением net core.Я строю свое приложение в Дженкинсе, используя докер.Мой образец репозитория находится по адресу

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>

Когда я запускаю сборку в jenkins, я получаю следующую ошибку

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.AspC.Razor.Hosting.RazorConfigurationNameAttribute 'attribute [/app/jenkins.csproj] Команда' / bin / sh -c dotnet publish -c Release -o output 'вернула ненулевой код: 1

До сих пор я пробовал,

Удалил папку bin и object и перестроил-ed.Добавлено GenerateAssemblyInfo как false в .csproj Перезапущен Дженкинс

Я добавил ниже конфигурацию в соответствии с

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

<GenerateAssemblyConfigurationAttribute>false</GenerateAssemblyConfigurationAttribute>
    <GenerateAssemblyDescriptionAttribute>false</GenerateAssemblyDescriptionAttribute>
    <GenerateAssemblyProductAttribute>false</GenerateAssemblyProductAttribute>
    <GenerateAssemblyTitleAttribute>false</GenerateAssemblyTitleAttribute>

Это также не работает дляменя.Ниже приведен мой файл Jenkins.RazorAssemblyInfo.cs, который я прокомментировал и попробовал, но ничего не получилось.

using System;
using System.Reflection;

[assembly: Microsoft.AspNetCore.Mvc.ApplicationParts.RelatedAssemblyAttribute("Jenkins.Views")]
[assembly: Microsoft.AspNetCore.Razor.Hosting.RazorLanguageVersionAttribute("2.1")]
[assembly: Microsoft.AspNetCore.Razor.Hosting.RazorConfigurationNameAttribute("MVC-2.1")]
[assembly: Microsoft.AspNetCore.Razor.Hosting.RazorExtensionAssemblyNameAttribute("MVC-2.1", "Microsoft.AspNetCore.Mvc.Razor.Extensions")]

// Generated by the MSBuild WriteCodeFragment class.

У меня ничего не получалось.Может ли кто-нибудь помочь мне разобраться в проблеме?Любая помощь будет принята с благодарностью.Заранее спасибо

1 Ответ

1 голос
/ 30 сентября 2019

В вашем хранилище есть несколько проблем:

  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"]
    
  4. Запустите команду docker build -t jenkins -f Dockerfile . из JenkinsPipeLine\Jenkins\Jenkins

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...