.NET Core uygulamalarını derleme, test etme ve dağıtma

Azure Pipelines | Azure DevOps Server 2020 | Azure DevOps Server 2019 | TFS 2018 | TFS 2017

.NET Core projelerinizi otomatik olarak derlemek ve test etmek için bir işlem hattı kullanın. Şunları nasıl yapacağınızı öğrenin:

Not

.NET Framework projelerine yönelik yardım için bkz. .NET Framework Ile derleme ASP.NET uygulamaları.

Not

Microsoft Team Foundation Server (TFS) 2018 ve önceki sürümlerde, derleme ve yayın işlem hatları tanımlar olarak adlandırılır, çalışmalara derlemeler denir, hizmet bağlantılarına hizmet uç noktaları denir, aşamalar ortamlar olarak adlandırılır ve işler aşamalar olarak adlandırılır.

Not

Bu kılavuz TFS sürüm 2017,3 ve üzeri için geçerlidir.

İlk işlem hattınızı oluşturma

Azure Pipelines yeni misiniz? Bu durumda, diğer bölümlere geçmeden önce bu bölümü denemeniz önerilir.

Kodu alma

GitHub 'da bu depoyu çatal:

Bu depoyu Azure DevOps Server 2019 ' deki git deponuza aktarın:

Bu depoyu TFS 'deki git deponuza aktarın:

https://github.com/MicrosoftDocs/pipelines-dotnet-core

Azure Pipelines oturum açın

Azure Pipelinesoturum açın. Oturum açtıktan sonra, tarayıcınız ' a gider https://dev.azure.com/my-organization-name ve Azure DevOps panonuzu görüntüler.

Seçtiğiniz kuruluş içinde bir Proje oluşturun. Kuruluşunuzda bir projeniz yoksa, başlamak için bir proje oluşturun ekranına bakabilirsiniz. Aksi takdirde, panonun sağ üst köşesindeki proje oluştur düğmesini seçin.

İşlem hattını oluşturma

  1. Azure DevOps kuruluşunuzda oturum açın ve projenize gidin.

  2. İşlem hatları' na gidin ve ardından Yeni işlem hattı' nı seçin.

  3. İlk olarak kaynak kodunuzun konumu olarak GitHub ' i seçerek sihirbazın adımlarını gözden geçir.

  4. Oturum açmak için GitHub 'a yönlendirilirsiniz. Bu durumda, GitHub kimlik bilgilerinizi girin.

  5. Depo listesi göründüğünde, deponuzu seçin.

  6. Azure Pipelines uygulamasını yüklemek için GitHub 'a yönlendirilirsiniz. Varsa, & yüklemeyi Onayla' yı seçin.

Yapılandır sekmesi göründüğünde ASP.NET Core' yi seçin.

  1. Yeni ardışık düzen belirdiğinde, ne yaptığını görmek için YAML 'ye göz atın. Hazırsanız Kaydet ve Çalıştır' ı seçin.

    Yeni bir YAML ardışık düzeninde Kaydet ve Çalıştır düğmesi

  2. Deponuza yeni bir Azure-Pipelines. yıml dosyası uygulamanız istenir. İletiden memnun olduktan sonra Kaydet'i seçin ve yeniden çalıştırın.

    İşlem hattınızı iş üzerinde izlemek için derleme işini seçin.

    Kodunuz ASP.NET Core şablonu için iyi bir eşleşme gibi görünüyor olduğundan, sizin için otomatik olarak oluşturduğum bir işlem hattı ASP.NET çalıştırmanız.

    Artık depoda özelleştirmenize hazır çalışan bir YAML işlem hattınız ( azure-pipelines.yml ) var!

  3. İşlem hattınız üzerinde değişiklik yapmaya hazırsanız İşlem Hatları sayfasında bunu seçin ve ardından Dosyayı azure-pipelines.yml düzenleyin.

  4. İşlem hattınızı özelleştirmenin daha yaygın yollarından bazıları hakkında bilgi edinmek için aşağıdaki bölümlere bakın.

YAML

  1. Depoya azure-pipelines.yml bir dosya ekleyin. Derlemeniz için bu kod parçacığını özelleştirin.
trigger:
- master

pool: Default

variables:
  buildConfiguration: 'Release'

# do this before all your .NET Core tasks
steps:
- task: DotNetCoreInstaller@2
  inputs:
    version: '2.2.402' # replace this value with the version that you need for your project
- script: dotnet build --configuration $(buildConfiguration)
  displayName: 'dotnet build $(buildConfiguration)'
  1. İşlem hattı oluşturun (nasıl olduğunu bilmiyorsanız bkz. İlk işlem hattınızı oluşturma)ve şablon için YAML'yi seçin.

  2. İşlem hattınız için Aracı havuzunu ve YAML dosya yolunu ayarlayın.

  3. İşlem hattını kaydedin ve derlemeyi kuyruğa kaydedin. Derleme #nnnnnnnn.n kuyruğa alınan ileti görüntülendiğinde, işlem hattınızı nasıl iş üzerinde görmek için sayı bağlantısını seçin.

  4. İşlem hattınız üzerinde değişiklik yapmaya hazır olduğunda Bunu düzenleyin.

  5. İşlem hattınızı özelleştirmenin daha yaygın yollarından bazıları hakkında bilgi edinmek için aşağıdaki bölümlere bakın.

Klasik

  1. İşlem hattı oluşturma (nasıl olduğunu bilmiyorsanız bkz. İlk işlem hattınızı oluşturma). Şablon için Boş İşlem Hattı'ı seçin.

  2. Görev kataloğunda .NET Core görevini bulun ve ekleyin. Bu görev, dotnet build kodu örnek depoda derlemek için çalıştıracak.

  3. İşlem hattını kaydedin ve derlemeyi kuyruğa kaydedin. Derleme #nnnnnnnn.n kuyruğa alınan ileti görüntülendiğinde, işlem hattınızı nasıl iş üzerinde görmek için sayı bağlantısını seçin.

    Artık özelleştirmeniz için hazır olan çalışır durumda bir işlem hattı var!

  4. İşlem hattınızda değişiklik yapmaya hazırsanız, düzenleyin .

  5. İşlem hattınızı özelleştirmenin daha yaygın yöntemlerinden bazılarını öğrenmek için aşağıdaki bölümlere bakın.

Yapı ortamı

Windows, Linux veya macOS 'ta .NET Core projelerinizi oluşturmak için Azure Pipelines kullanın. Azure Pipelines ' deki Microsoft tarafından barındırılan aracılar , .NET Core SDK 'larının önceden yüklenmiş birkaç sürümünü içerir.

Ubuntu 18,04, YAML dosyasında ayarlanır.

pool:
  vmImage: 'ubuntu-18.04' # examples of other options: 'macOS-10.15', 'windows-2019'

Daha fazla örnek için bkz. görüntülerin ve havuzun tam listesi için Microsoft tarafından barındırılan aracılar .

Microsoft tarafından barındırılan aracılar .NET Core SDK eski sürümlerinden bazılarını içermez. Bunlar genellikle ön sürüm sürümlerini de içermez. Microsoft tarafından barındırılan aracılarda bu tür SDK 'lara ihtiyacınız varsa, UseDotNet@2 görevi YAML dosyanıza ekleyin.

.NET Core 3.0. x ' i hedefleyen testleri çalıştırmak için 5.0. x SDK 'sının, derleme ve 3.0. x için Önizleme sürümünü yüklemek için şu kod parçacığını ekleyin:

steps:
- task: UseDotNet@2
  inputs:
    version: '5.0.x'
    includePreviewVersions: true # Required for preview versions

- task: UseDotNet@2
  inputs:
    version: '3.0.x'
    packageType: runtime

Windows aracıları zaten bir .NET Core çalışma zamanı içeriyor. Daha yeni bir SDK yüklemek için, performMultiLevelLookup true Bu kod parçacığında olarak ayarlayın:

steps:
- task: UseDotNet@2
  displayName: 'Install .NET Core SDK'
  inputs:
    version: 5.0.x
    performMultiLevelLookup: true
    includePreviewVersions: true # Required for preview versions

İpucu

Alternatif olarak, kendi kendine barındırılan bir aracı ayarlayabilir ve araç yükleyicisini çalıştırmanın maliyetini kaydedebilirsiniz. Bkz. Linux, MacOSveya Windows. Şirket içinde barındırılan aracıları, büyük bir deponuz varsa veya artımlı derlemeler çalıştırırsanız ek zaman kazanmak için de kullanabilirsiniz. Şirket içinde barındırılan bir aracı, Azure DevOps tarafından resmi olarak desteklenmeyen veya yalnızca şirket içinde veya şirket içi ortamlarınızda bulunan Önizleme veya özel SDK 'Ları kullanmanıza da yardımcı olabilir.

.NET Core projelerinizi Windows, Linux veya macOS 'ta .NET Core SDK ve çalışma zamanı kullanarak oluşturabilirsiniz. Yapılarınız kendi kendine barındırılan bir aracıdaçalışır. Aracıda gerekli .NET Core SDK ve çalışma zamanı sürümünün yüklü olduğundan emin olun.

Bağımlılıkları geri yükleme

NuGet, oluşturmadığnıza koda bağımlı olmak için popüler bir yoldur. .NET Core görevi aracılığıyla veya doğrudan işlem hattınız içinde bir betik içinde komutunu çalıştırarak proje dosyasında belirtilen NuGet paketlerini ve projeye özgü dotnet restore araçları indirebilirsiniz.

NuGet paketlerini Azure Artifacts, NuGet.org veya başka bir dış veya iç NuGet deposundan indirebilirsiniz. .NET Core görevi, kimliği doğrulanmış NuGet akışlarından paketleri geri yüklemek için özellikle yararlıdır.

Bu işlem hattı, görev için bir dotnet restore yapı akışı .NET Core CLI kullanır.

trigger:
- master

pool:
  vmImage: 'windows-latest'

variables:
  buildConfiguration: 'Release'

steps:
- task: DotNetCoreCLI@2
  inputs:
    command: 'restore'
    feedsToUse: 'select'
    vstsFeed: 'my-vsts-feed' # A series of numbers and letters

- task: DotNetCoreCLI@2
  inputs:
    command: 'build'
    arguments: '--configuration $(buildConfiguration)'
  displayName: 'dotnet build $(buildConfiguration)'

NuGet paketlerini NuGet.org.

dotnet restore dahili olarak, ile NuGet.exe paketlenmiş bir sürümünü .NET Core SDK. dotnet restore yalnızca .NET Core proje dosyalarında belirtilen paketleri geri .csproj yükleyebilir. Ayrıca çözümünüzde bir Microsoft .NET Framework projeniz varsa veya bağımlılıklarınızı belirtmek için kullanıyorsanız, bu bağımlılıkları geri yüklemek için package.json NuGet görevini de kullansanız gerekir.

Sürüm .NET Core SDK 2.0 ve daha yeni sürümlerde, gibi diğer komutlar çalıştırılırken paketler otomatik olarak geri dotnet build yüklenir.

Sürüm .NET Core SDK 2.0 ve daha yeni sürümlerde, gibi diğer komutlar çalıştırılırken paketler otomatik olarak geri dotnet build yüklenir. Ancak, kimliği doğrulanmış bir akış kullanıyorsanız paketleri geri yüklemek için yine de .NET Core görevini kullanabilirsiniz.

Bağlantı sorunları nedeniyle derlemeleriniz bazen NuGet.org geri yüklemede başarısız oluyorsa, yukarı akış kaynaklarıyla Azure Artifacts kullanarak paketleri önbelleğe ebilirsiniz. İşlem hattının kimlik bilgileri, bağlantı hattına bağlanırken otomatik Azure Artifacts. Bu kimlik bilgileri genellikle Proje Koleksiyonu Derleme Hizmeti hesabından türetilen.

Bir NuGet deposu belirtmek için URL'leri depoda NuGet.config bir dosyaya koyabilirsiniz. Akışlarınızın kimliği doğrulandıysa, proje ayarları altındaki Hizmetler sekmesinde bir NuGet hizmet bağlantısı oluşturarak kimlik bilgilerini yönetin.

Microsoft tarafından barındırılan aracılar kullanıyorsanız, her bir derlemeyi her çalıştırdığınızda yeni bir makine alırsınız, bu da paketleri her seferinde geri yükleme anlamına gelir. Bu geri yükleme işlemi, önemli miktarda zaman alabilir. Bu sorunu gidermek için Azure Artifacts veya şirket içinde barındırılan bir aracı kullanabilirsiniz. Bu durumda, paket önbelleğini kullanma avantajını elde edersiniz.

Paketleri dış özel akıştan geri yüklemek için .NET Core görevini kullanın:

# do this before your build tasks
steps:
- task: DotNetCoreCLI@2
  displayName: Restore
  inputs:
    command: restore
    projects: '**/*.csproj'
    feedsToUse: config
    nugetConfigPath: NuGet.config    # Relative to root of the repository
    externalFeedCredentials: <Name of the NuGet service connection>
# ...

NuGet hizmeti bağlantıları hakkında daha fazla bilgi için bkz. NuGet akışlarına yayımlama.

  1. İşlem hattındaki görevleri seçin. Yapı görevlerinizi çalıştıran işi seçin. Sonra + Bu işe yeni bir görev eklemeyi seçin.

  2. Görev kataloğunda .NET Core görevini bulun ve ekleyin.

  3. Görevi seçin ve komut için geri yükle' yi seçin.

  4. Bu görev için gereken diğer seçenekleri belirtin. Sonra derlemeyi kaydedin.

Not

Özel akışın NuGet.config dosyanızda belirtildiğinden ve bu kimlik bilgilerinin NuGet hizmet bağlantısında belirtildiğinden emin olun.

Projenizi oluşturma

.NET Core projenizi, işlem dotnet build hattınızda komutunu çalıştırarak veya .NET Core görevini kullanarak oluşturursunuz.

Projenizi .NET Core görevini kullanarak derlemek için, dosyanıza aşağıdaki kod parçacığını ekleyin azure-pipelines.yml :

steps:
- task: DotNetCoreCLI@2
  displayName: Build
  inputs:
    command: build
    projects: '**/*.csproj'
    arguments: '--configuration $(buildConfiguration)' # Update this to match your need

İşlem hattınızda herhangi bir özel DotNet komutunu çalıştırabilirsiniz. Aşağıdaki örnekte, .NET küresel aracının nasıl yükleneceği ve kullanılacağı gösterilmektedir:

steps:
- task: DotNetCoreCLI@2
  displayName: 'Install dotnetsay'
  inputs:
    command: custom
    custom: tool
    arguments: 'install -g dotnetsay'

Derleme

  1. İşlem hattındaki görevleri seçin. Derleme görevlerinizi çalıştıran işi seçin. Ardından bu + işe yeni bir görev eklemek için öğesini seçin.

  2. Görev kataloğunda .NET Core görevini bulun ve ekleyin.

  3. Görevi seçin ve Komut için derleme veya yayımlama'yı seçin.

  4. Bu görev için ihtiyacınız olan diğer seçenekleri belirtin. Ardından derlemeyi kaydedin.

Araç yükleme

Windows üzerinde çalışan derlemenize dotnetsay gibi bir .NET Core genel aracı yüklemek için aşağıdaki adımları uygulayın:

  1. .NET Core görevini ekleyin ve aşağıdaki özellikleri ayarlayın:

    • Komut: özel.
      • Projelerin yolu: boş bırakın.
    • Özel komut: araç.
    • Bağımsız değişkenler: install -g dotnetsay .
  2. Bir Komut Satırı görevi ekleyin ve aşağıdaki özellikleri ayarlayın:

    • Betik: dotnetsay .

Testlerinizi çalıştırma

Depoda test projeleriniz varsa MSTest, xUnit ve NUnit gibi test çerçevelerini kullanarak birim testlerini çalıştırmak için .NET Core görevini kullanın. Bu işlevsellik için test projesinin Microsoft .NET.Test.SDK sürüm 15.8.0 veya üst sürümüne başvuracak olması gerekir. Test sonuçları otomatik olarak hizmette yayımlanır. Bu sonuçlar daha sonra derleme özetinde size açık olur ve başarısız testlerde ve test zamanlama analizinde sorun giderme için kullanılabilir.

Dosyanıza aşağıdaki kod parçacığını ekleyin azure-pipelines.yml :

steps:
# ...
# do this after other tasks such as building
- task: DotNetCoreCLI@2
  inputs:
    command: test
    projects: '**/*Tests/*.csproj'
    arguments: '--configuration $(buildConfiguration)'

Diğer bir seçenek de dotnet test komutu belirli bir günlükçü ile çalıştırmak ve sonra Yayımla test sonuçları görevini kullanmaktır:

steps:
# ...
# do this after your tests have run
- script: dotnet test <test-project> --logger trx
- task: PublishTestResults@2
  condition: succeededOrFailed()
  inputs:
    testRunner: VSTest
    testResultsFiles: '**/*.trx'

Test etmek için komut kümesini içeren .NET Core görevini kullanın. Projelerin yolu çözümünüzdeki test projelerine başvurmalıdır.

Kod kapsamını topla

Windows platformunda derleme yapıyorsanız, kod kapsamı ölçümleri yerleşik kapsam veri toplayıcısı kullanılarak toplanabilir. Bu işlevsellik için, test projesinin Microsoft. net. test. SDK sürüm 15.8.0 veya üstüne başvurması gerekir. Testleri çalıştırmak için .NET Core görevini kullanırsanız, kapsam verileri sunucuya otomatik olarak yayımlanır. . Coverage dosyası, Visual Studio 'da görüntülenmek üzere derleme özetinden indirilebilir.

Dosyanıza aşağıdaki kod parçacığını ekleyin azure-pipelines.yml :

steps:
# ...
# do this after other tasks such as building
- task: DotNetCoreCLI@2
  inputs:
    command: test
    projects: '**/*Tests/*.csproj'
    arguments: '--configuration $(buildConfiguration) --collect "Code coverage"'

Komutu çalıştırmayı seçerseniz dotnet test , test sonuçları günlükçüsü ve kapsam seçeneklerini belirtin. Ardından test sonuçları Yayımla görevini kullanın:

steps:
# ...
# do this after your tests have run
- script: dotnet test <test-project> --logger trx --collect "Code coverage"
- task: PublishTestResults@2
  inputs:
    testRunner: VSTest
    testResultsFiles: '**/*.trx'
  1. Yapı işinize .NET Core görevini ekleyin ve aşağıdaki özellikleri ayarlayın:

    • Komut: test.
    • Projelerin yolu: çözümünüzdeki test projelerine başvurmalıdır.
    • Bağımsız değişkenler: --configuration $(BuildConfiguration) --collect "Code coverage" .
  2. Test sonuçlarını yayımla seçeneğinin seçili olduğundan emin olun.

Kod kapsamı ölçümlerini, kapak Let ile toplayın

Linux veya macOS üzerinde oluşturuyorsanız, kod kapsamı ölçümlerini toplamak için Kapak Let veya benzer bir araç kullanabilirsiniz.

Kod kapsamı sonuçları, kod kapsamı sonuçları Yayımla görevi kullanılarak sunucuya yayımlanabilir. Bu işlevi kullanmak için kapsam aracının Cobertura veya JaCoCo kapsam biçiminde sonuçlar oluşturacak şekilde yapılandırılması gerekir.

Testleri çalıştırmak ve Coverlet ile kod kapsamı yayımlamak için:

  • .NET 5'in altındaki .NET projeleri için test projelerinde coverlet.msbuild NuGet paketine bir başvuru ekleyin. .NET 5 için NuGet paketine coverlet.collector bir başvuru ekleyin.
  • Bu kod parçacığını dosyanıza azure-pipelines.yml ekleyin:
- task: UseDotNet@2
  inputs:
    version: '5.0.x'
    includePreviewVersions: true # Required for preview versions
  
- task: DotNetCoreCLI@2
  displayName: 'dotnet build'
  inputs:
    command: 'build'
    configuration: $(buildConfiguration)
  
- task: DotNetCoreCLI@2
  displayName: 'dotnet test'
  inputs:
    command: 'test'
    arguments: '--configuration $(buildConfiguration) --collect:"XPlat Code Coverage" /p:CoverletOutputFormat=cobertura /p:CoverletOutput=$(Build.SourcesDirectory)/TestResults/Coverage/'
    publishTestResults: true
    projects: 'MyTestLibrary' # update with your test project directory
  
- task: PublishCodeCoverageResults@1
  displayName: 'Publish code coverage report'
  inputs:
    codeCoverageTool: 'Cobertura'
    summaryFileLocation: '$(Build.SourcesDirectory)/**/coverage.cobertura.xml'

Kodunuzu paketle ve teslim

Uygulamanızı oluşturduk ve test ettikten sonra derleme çıkışını Azure Pipelines veya TFS'ye yükleyebilir, nuGet paketi oluşturabilir ve yayımlar ya da derleme çıkışını bir web uygulamasına dağıtılacak bir .zip dosyasına paketlebilirsiniz.

Yapıtları Azure Pipelines

.NET derlemenizin çıkışını yayımlamak için,

  • dotnet publish --output $(Build.ArtifactStagingDirectory)CLI üzerinde komutunu çalıştırın veya publish DotNetCoreCLI@2 komutuyla görevi ekleyin.
  • Yapıt yayımla görevini kullanarak yapıyı yayımlayın.

Aşağıdaki kod parçacığını dosyanıza azure-pipelines.yml ekleyin:

steps:

- task: DotNetCoreCLI@2
  inputs:
    command: publish
    publishWebProjects: True
    arguments: '--configuration $(BuildConfiguration) --output $(Build.ArtifactStagingDirectory)'
    zipAfterPublish: True

# this code takes all the files in $(Build.ArtifactStagingDirectory) and uploads them as an artifact of your build.
- task: PublishPipelineArtifact@1
  inputs:
    targetPath: '$(Build.ArtifactStagingDirectory)' 
    artifactName: 'myWebsiteName'

Not

Görevin dotNetCoreCLI@2 varsayılan olarak true olarak ayarlanmış bir publishWebProjects girişi vardır. Bu, varsayılan olarak tüm web projelerini kendi alanınıza yayımlar. GitHub'daki açık kaynak görevde daha fazla yardım ve bilgi bulabilirsiniz.

Yayımlamadan önce Derleme dizinine daha fazla dosya kopyalamak için Yardımcı Program: dosyaları kopyalayın' kullanın.

NuGet akışında yayımlama

NuGet paketi oluşturmak ve yayımlamak için aşağıdaki kod parçacığını ekleyin:

steps:
# ...
# do this near the end of your pipeline in most cases
- script: dotnet pack /p:PackageVersion=$(version)  # define version variable elsewhere in your pipeline
- task: NuGetAuthenticate@0
  input:
    nuGetServiceConnections: '<Name of the NuGet service connection>'
- task: NuGetCommand@2
  inputs:
    command: push
    nuGetFeedType: external
    publishFeedCredentials: '<Name of the NuGet service connection>'
    versioningScheme: byEnvVar
    versionEnvVar: version

NuGet paketlerinin sürümünü ve yayımlaması hakkında daha fazla bilgi için bkz. NuGet akışlarında yayımlama.

Bir web uygulaması dağıtma

Bir Web uygulamasına yayımlamaya HAZIRAN bir. zip dosya arşivi oluşturmak için aşağıdaki kod parçacığını ekleyin:

steps:
# ...
# do this after you've built your app, near the end of your pipeline in most cases
# for example, you do this before you deploy to an Azure web app on Windows
- task: DotNetCoreCLI@2
  inputs:
    command: publish
    publishWebProjects: True
    arguments: '--configuration $(BuildConfiguration) --output $(Build.ArtifactStagingDirectory)'
    zipAfterPublish: True

Bu Arşivi bir Web uygulamasında yayımlamak için bkz. Azure Web Apps dağıtımı.

Yapıtları Azure Pipelines yayımlama

Derlemenize ait çıktıyı Azure Pipelines veya TFS 'ye yayımlamak için yapıtları Yayımla görevini kullanın.

NuGet akışına yayımlama

Kodunuzu bir NuGet akışında yayınlamak istiyorsanız aşağıdaki adımları uygulayın:

  1. Komut olarak ayarlanmış bir .NET Core görevi kullanın.

  2. Paketinizi bir NuGet akışına yayımlayın.

Bir web uygulaması dağıtma

  1. Yayımlamak için komutuyla ayarlanan bir .NET Core görevi kullanın.

  2. . Zip dosya arşivi oluşturma seçeneğini seçtiğinizden emin olun.

  3. Bu Arşivi bir Web uygulamasında yayımlamak için bkz. Azure Web Apps dağıtımı.

Bir görüntü oluşturun ve kapsayıcı kayıt defterine gönderin

Uygulamanız için bir görüntü oluşturup bir kapsayıcı kayıt defterinegönderebilirsiniz.

Sorun giderme

Projenizi geliştirme makinenizde derleyebilir, ancak Azure Pipelines veya TFS üzerinde oluşturma konusunda sorun yaşıyorsanız, aşağıdaki olası nedenleri ve düzeltme eylemlerini araştırın:

  • Microsoft tarafından barındırılan aracılarda .NET Core SDK ön sürüm sürümlerini yüklemeiyoruz. .NET Core SDK yeni bir sürümü kullanıma sunulduktan sonra, Azure Pipelines üzerinde çalıştığı tüm veri merkezlerine bu kadar birkaç hafta sürebilir. Bu piyasaya çıkma işleminin bitmesini beklemeniz gerekmez. Microsoft tarafından barındırılan aracılarda .NET Core SDK istenen sürümünü yüklemek için, bu kılavuzda açıklanan .NET Core araç yükleyicisini kullanabilirsiniz.
  • Geliştirme makinenizde .NET Core SDK ve çalışma zamanının sürümlerinin aracıdaki olanlarla eşleştiğinden emin olun. dotnet --version.NET Core SDK sürümünü yazdırmak için işlem hattınızda bir komut satırı betiği ekleyebilirsiniz. Aynı sürümü aracıya dağıtmak veya projelerinizi ve geliştirme makinenizi yeni sürüme güncelleştirmek için bu kılavuzda açıklanan şekilde .NET Core Araç Yükleyicisi'.NET Core SDK.

  • İşlem hattınıza kodlanmamış Visual Studio IDE'de bir mantık kullanıyor olabilirsiniz. Azure Pipelines TFS, yeni bir işlemde görevlerde belirttiğiniz komutların her birini birbirinin ardından çalıştırır. Derlemenin bir parçası olarak Azure Pipelines tam komutları görmek için Azure Pipelines veya TFS derlemesinde yer alan günlüklere bakın. Sorunu bulmak için aynı komutları geliştirme makinenize aynı sırayla tekrarlayın.

  • Bazı .NET Core projelerini ve bazı projelerini içeren bir .NET Framework çözümünüz varsa, dosyalarda belirtilen paketleri geri yüklemek için NuGet görevini de packages.config kullanabilirsiniz. Benzer şekilde, derleme projelerini derlemek için MSBuild Visual Studio görevleri eklemeniz .NET Framework gerekir.

  • Derlemeleriniz paketleri geri yükleme sırasında aralıklı olarak başarısız olursa, NuGet.org sorun veya Azure veri merkezi ile azure veri merkezi arasında ağ sorunları NuGet.org. Bunlar bizim denetimimizde değil ve bir yukarı akış kaynağı olarak Azure Artifacts NuGet.org derlemenizin güvenilirliğini artırıp artırmay olmadığını incelemeniz gerekir.

  • Bazen, barındırılan görüntülere yeni bir sürüm veya .NET Core SDK sürümüyle bir güncelleştirme Visual Studio, derlemenizi bozan bir şey olabilir. Örneğin, NuGet aracının daha yeni bir sürümü veya özelliği SDK ile birlikte gönderilirse bu durum olabilir. Bu sorunları yalıtmak için .NET Core Araç Yükleyicisi görevini kullanarak derlemenize .NET Core SDK sürümünü belirtin.

SSS

Azure Artifacts ve TFS Paket Yönetimi nereden öğrenebilirim?

Paket Yönetimi ve TFS Azure Artifacts de yapılandırma

.NET Core komutları hakkında nereden daha fazla bilgi öğrenebilirim?

.NET Core CLI araçları

Çözümümde testleri çalıştırma hakkında daha fazla bilgi nereden öğrenebilirim?

.NET Core projelerinde birim testi

Görevler hakkında nereden daha fazla bilgi öğrenebilirim?

Derleme ve yayınlama görevleri