Как мне получить Azure DevOps для создания правильного nuspe c для проекта. net standard 2.0? - PullRequest
0 голосов
/ 13 февраля 2020

Я могу создать подходящий пакет nuget для своей библиотеки. net standard 2.0, щелкнув правой кнопкой мыши проект в VS2019 и выбрав пакет.

.nuspe c содержит

<?xml version="1.0" encoding="utf-8"?>
<package xmlns="http://schemas.microsoft.com/packaging/2013/05/nuspec.xsd">
  <metadata>
    <id>SBD.Standard</id>
    <version>1.0.0</version>
    <authors>SBD.Standard</authors>
    <owners>SBD.Standard</owners>
    <requireLicenseAcceptance>false</requireLicenseAcceptance>
    <description>Package Description</description>
    <dependencies>
      <group targetFramework=".NETStandard2.0">
        <dependency id="Microsoft.Data.SqlClient" version="1.1.0" exclude="Build,Analyzers" />
        <dependency id="Microsoft.EntityFrameworkCore" version="3.1.1" exclude="Build,Analyzers" />
        <dependency id="Microsoft.EntityFrameworkCore.SqlServer" version="3.1.1" exclude="Build,Analyzers" />
        <dependency id="Newtonsoft.Json.Schema" version="2.0.7" exclude="Build,Analyzers" />
        <dependency id="RestSharp" version="106.10.0" exclude="Build,Analyzers" />
        <dependency id="System.Data.SqlClient" version="4.6.1" exclude="Build,Analyzers" />
      </group>
    </dependencies>
  </metadata>
</package>

Однако, если я создаю nuget в Azure Devops, используя следующую команду в azure -pipelines.yml

- task: DotNetCoreCLI@2
  inputs:
    command: 'pack'
    packagesToPack: '**/SBDSTD.*.csproj'

Затем я просматриваю файл .nuspe c для созданного пакета содержит

<?xml version="1.0" encoding="utf-8"?>
<package xmlns="http://schemas.microsoft.com/packaging/2011/10/nuspec.xsd">
  <metadata>
    <id>SBD.Standard</id>
    <version>2.0.0-CI-20200212-174043</version>
    <title>SBD.Standard</title>
    <authors>SBD.Standard</authors>
    <owners>SBD.Standard</owners>
    <requireLicenseAcceptance>false</requireLicenseAcceptance>
    <description>Description</description>
    <dependencies />
  </metadata>
</package>

Как заставить Devops создать правильный файл .nuspe c?

1 Ответ

1 голос
/ 13 февраля 2020

Как я могу получить Azure DevOps для создания правильного nuspe c для проекта. net standard 2.0?

После долгого устранения неполадок с Kirsten Greed, мы разобрался.

Мы разрешаем следующий YAML для регенерации пакета nuget для проекта. net standard 2.0:

trigger: none
pool:
  vmImage: vs2017-win2016

steps:
- task: DotNetCoreCLI@2
  displayName: 'dotnet restore'
  inputs:
    command: restore
    projects: xxxx/xxx.csproj
    vstsFeed: 'XXXXXXX'

- task: DotNetCoreCLI@2
  displayName: 'dotnet build'
  inputs:
    projects: xxx/xxx.csproj
    arguments: '/p:Configuration=Release'

- task: DotNetCoreCLI@2
  displayName: 'dotnet pack'
  inputs:
    command: pack
    packagesToPack: xxx/xxx.csproj

- task: PublishBuildArtifacts@1
  displayName: 'Publish Artifact: drop'

Затем мы можем проверить файл .nuspec после распаковки сгенерированный пакет.

Кроме того, мы можем использовать задачу nuget pu sh для публикации sh сгенерированного пакета в нашем фиде, например:

- task: DotNetCoreCLI@2
displayName: 'dotnet push'
inputs:
command: push
publishVstsFeed: 'XXXX'

Надеюсь, это поможет.

...