dotnet build

Bu makale şu sürümler için geçerlidir: ✔️ .NET Core 2.x SDK ve sonraki sürümleri

Name

dotnet build - Bir projeyi ve tüm bağımlılıklarını derleme.

Özet

dotnet build [<PROJECT>|<SOLUTION>] [-a|--arch <ARCHITECTURE>]
    [-c|--configuration <CONFIGURATION>] [-f|--framework <FRAMEWORK>]
    [--force] [--interactive] [--no-dependencies] [--no-incremental]
    [--no-restore] [--nologo] [--no-self-contained] [--os <OS>]
    [-o|--output <OUTPUT_DIRECTORY>] [-r|--runtime <RUNTIME_IDENTIFIER>]
    [--self-contained [true|false]] [--source <SOURCE>]
    [-v|--verbosity <LEVEL>] [--version-suffix <VERSION_SUFFIX>]

dotnet build -h|--help

Description

komutu dotnet build projeyi ve bağımlılıklarını bir ikili dosyalar kümesinde derleme. Ikili dosyalar, projenin kodunu bir dosya uzantısına sahip Ara Dil (IL) dosyalarına.dll içerir. Proje türüne ve ayarlara bağlı olarak, aşağıdakiler gibi diğer dosyalar dahil olabilir:

  • Proje türü .NET Core 3.0 veya sonraki bir çalıştırılabilir dosyayı hedef alan bir yürütülebilir dosya ise, uygulamayı çalıştırmak için çalıştırılabilir.
  • .pdb uzantısıyla hata ayıklamak için kullanılan sembol dosyaları.
  • Uygulamanın veya kitaplığın bağımlılıklarını listeleen bir .deps.json dosyası.
  • Paylaşılan çalışma zamanını ve uygulamanın sürümünü belirten bir .runtimeconfig.json dosyası.
  • Projenin bağlı olduğu diğer kitaplıklar (proje başvuruları veya NuGet aracılığıyla).

.NET Core 3.0'dan önceki sürümleri hedef alan yürütülebilir projeler için, NuGet kitaplık bağımlılıkları genellikle çıkış klasörüne kopyalanmaz. Bunlar çalışma zamanında NuGet genel paketler klasöründen çözümlenir. Bu nedenle ürününün çalışması dotnet build için başka bir makineye aktarılama hazır değil. Uygulamanın dağıtılabilir bir sürümünü oluşturmak için yayımlamanız gerekir (örneğin, dotnet publish komutuyla). Daha fazla bilgi için bkz. .NET Uygulama Dağıtımı.

.NET Core 3.0 ve sonrakini hedef alan yürütülebilir projeler için kitaplık bağımlılıkları çıkış klasörüne kopyalanır. Bu, yayımlamaya özgü başka bir mantık (Web projeleri gibi) yoksa derleme çıkışının dağıtılabilir olması gerektiği anlamına gelir.

Örtülü geri yükleme

Oluşturma için project.assets.json dosyası gerekir ve bu dosya uygulamanın bağımlılıklarını listeler. Dosya dotnet restore yürütülürken oluşturulur. Varlıklar dosyası yerinde olmadan, araç başvuru derlemelerini çözümleyemeden hatalara neden olur.

,,,, dotnet restore Ve gibi geri yükleme gerektiren tüm komutlar tarafından örtük olarak çalıştırıldığı için çalıştırmanız gerekmez dotnet new dotnet build dotnet run dotnet test dotnet publish dotnet pack . Örtük geri yüklemeyi devre dışı bırakmak için --no-restore seçeneğini kullanın.

dotnet restoreBu komut, açıkça geri yükleme işleminin, Azure DevOps Services veya derleme sistemlerindeki sürekli tümleştirme yapıları gibi, geri yüklemenin ne zaman gerçekleşeceğini açıkça denetmasının gerektiği bazı senaryolarda de yararlıdır.

NuGet beslemelerini yönetme hakkında daha fazla bilgi için dotnet restore belgelerinebakın.

Bu komut, dotnet restore uzun biçimde geçirildiğinde seçenekleri destekler (örneğin, --source ). Gibi kısa form seçenekleri -s desteklenmez.

Yürütülebilir dosya veya kitaplık çıkışı

Projenin yürütülebilir olup olmadığı, proje dosyasındaki <OutputType> özelliği tarafından belirlenir. Aşağıdaki örnek yürütülebilir kod üreten bir projeyi gösterir:

<PropertyGroup>
  <OutputType>Exe</OutputType>
</PropertyGroup>

Bir kitaplık üretmek için özelliğini <OutputType> atlar veya değerini olarak Library değiştirir. Bir kitaplığın IL DLL'si giriş noktaları içermez ve yürütülenemz.

MSBuild

dotnet buildprojeyi MSBuild için bir proje kullanır, bu nedenle hem paralel hem de artımlı derlemeleri destekler. Daha fazla bilgi için bkz. Artımlı Derlemeler.

Komutu, seçeneklerine ek olarak, MSBuild ayarlama veya günlükleyici tanımlama gibi dotnet build farklı seçenekleri de kabul -p -l eder. Bu seçenekler hakkında daha fazla bilgi için bkz. MSBuild Command-Line başvurusu. Veya dotnet msbuild komutunu da kullanabilirsiniz.

Not

tarafından dotnet build otomatik olarak dotnet run çalıştırıldıklarından, -property:property=value gibi bağımsız değişkenlere saygı gösterilir.

Çalıştırma, dotnet build çalıştırmaya dotnet msbuild -restore eşdeğerdir; ancak çıkışın varsayılan ayrıntılılığı farklıdır.

İş yükü bildirimi İndirmeleri

Bu komutu çalıştırdığınızda, iş yükleri için reklam bildirimlerinin zaman uyumsuz karşıdan yükleme işlemini başlatır. Bu komut tamamlandığında indirme çalışmaya devam ediyorsa, indirme durdurulur. Daha fazla bilgi için bkz. reklam bildirimleri.

Bağımsız değişkenler

PROJECT | SOLUTION

Derlemek için proje veya çözüm dosyası. Bir proje veya çözüm dosyası belirtilmezse, MSBuild proj veya sln ile sona eren ve bu dosyayı kullanan bir dosya uzantısına sahip bir dosya için geçerli çalışma dizininde arama yapabilirsiniz.

Seçenekler

  • -a|--arch <ARCHITECTURE>

    Hedef mimariyi belirtir. Bu, belirtilen değerin varsayılan RID ile birleştirileceği çalışma zamanı tanımlayıcısı 'nı (RID)ayarlamaya yönelik bir toplu sözdizimidir. Örneğin, bir win-x64 makinede, --arch x86 RID öğesini olarak belirler win-x86 . Bu seçeneği kullanırsanız, -r|--runtime seçeneğini kullanmayın. .NET 6 Preview 7 ' den beri kullanılabilir.

  • -c|--configuration <CONFIGURATION>

    Yapı yapılandırmasını tanımlar. Çoğu proje için varsayılandır Debug , ancak projenizde derleme yapılandırma ayarlarını geçersiz kılabilirsiniz.

  • -f|--framework <FRAMEWORK>

    Belirli bir çerçeve için derler. Çerçeve, proje dosyasında tanımlanmalıdır.

  • --force

    Son geri yükleme başarılı olsa bile tüm bağımlılıkların çözüme kavuşturulmalarını güçler. Bu bayrağı belirtmek project.assets.json dosyasını silmekle aynıdır.

  • -?|-h|--help

    Komutunun nasıl kullanıla ilgili bir açıklama yazdırır.

  • --interactive

    Komutun Kullanıcı girişini veya eylemini durdurmasına ve beklemesine izin verir. Örneğin, kimlik doğrulamasını tamamlamaya yönelik. .NET Core 3,0 SDK 'dan beri kullanılabilir.

  • --no-dependencies

    Projeden projeye (P2P) başvurularını yoksayar ve yalnızca belirtilen kök projeyi derlemez.

  • --no-incremental

    Artımlı derleme için derlemeyi güvenli değil olarak işaretler. Bu bayrak artımlı derlemeyi kapatarak projenin bağımlılık grafiğinin temiz bir yeniden derlemesini güçler.

  • --no-restore

    Derleme sırasında örtülü geri yükleme yürütmez.

  • --nologo

    Başlangıç başlığı veya telif hakkı iletisi görüntülenmez. .NET Core 3.0 SDK'dan itibaren kullanılabilir.

  • --no-self-contained

    Uygulamayı çerçeveye bağımlı bir uygulama olarak yayımlar. Uygulamayı çalıştırmak için hedef makinede uyumlu bir .NET çalışma zamanı yüklü olmalıdır. .NET 6 SDK'dan itibaren kullanılabilir.

  • -o|--output <OUTPUT_DIRECTORY>

    Yerleşik ikililerin yer alacak dizin. Belirtilmezse varsayılan yol ./bin/<configuration>/<framework>/ olur. Birden çok hedef çerçeveye sahip projeler için (özelliği TargetFrameworks aracılığıyla), bu seçeneği --framework belirttiğinizde de tanımlamanız gerekir.

  • --os <OS>

    Hedef işletim sistemini (OS) belirtir. Bu, belirtilen değerin varsayılan RID ile birleştirileceği çalışma zamanı tanımlayıcısı 'nı (RID)ayarlamaya yönelik bir toplu sözdizimidir. Örneğin, bir win-x64 makinede, --os os RID öğesini olarak belirler os-x64 . Bu seçeneği kullanırsanız, -r|--runtime seçeneğini kullanmayın. .NET 6 Preview 7 ' den beri kullanılabilir.

  • -r|--runtime <RUNTIME_IDENTIFIER>

    Hedef çalışma zamanının belirtir. Çalışma Zamanı Tanımlayıcılarının (RID) listesi için bkz. RID kataloğu. Bu seçeneği .NET 6 SDK ile kullanıyorsanız veya --self-contained --no-self-contained kullanın.

  • --self-contained [true|false]

    .NET çalışma zamanının hedef makinede yüklü olması gerekmay için uygulamayla birlikte yayımlar. Varsayılan değer, true çalışma zamanı tanımlayıcısı belirtilmişse değeridir. .NET 6 SDK'dan itibaren kullanılabilir.

  • --source <SOURCE>

    Geri yükleme işlemi sırasında NuGet paketi kaynağının URI'si.

  • -v|--verbosity <LEVEL>

    Komutun ayrıntılı düzeyini ayarlar. İzin verilen değerler q[uiet] : , , , ve m[inimal] n[ormal] d[etailed] diag[nostic] . Varsayılan değer: minimal. Daha fazla bilgi için bkz. LoggerVerbosity.

  • --version-suffix <VERSION_SUFFIX>

    Projeyi inşa etmek $(VersionSuffix) için özelliğinin değerini ayarlar. Bu yalnızca özelliği $(Version) ayarlanmasa çalışır. Ardından, $(Version) bir tire ile ayrılmış olarak ile $(VersionPrefix) $(VersionSuffix) birleştirilmiş olarak ayarlanır.

Örnekler

  • Projeyi ve bağımlılıklarını oluşturma:

    dotnet build
    
  • Yayın yapılandırmasını kullanarak bir proje ve bağımlılıkları oluşturma:

    dotnet build --configuration Release
    
  • Belirli bir çalışma zamanı için bir proje ve bağımlılıkları oluşturma (bu örnekte Ubuntu 18.04):

    dotnet build --runtime ubuntu.18.04-x64
    
  • Projeyi derleme ve geri yükleme işlemi NuGet belirtilen paket kaynağını kullanın:

    dotnet build --source c:\packages\mypackages
    
  • Projeyi derleme ve sürüm 1.2.3.4'ü derleme parametresi olarak MSBuild -p ayarlayın:

    dotnet build -p:Version=1.2.3.4