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-x64makinede,--arch x86RID öğesini olarak belirlerwin-x86. Bu seçeneği kullanırsanız,-r|--runtimeseç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.
--forceSon 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|--helpKomutunun nasıl kullanıla ilgili bir açıklama yazdırır.
--interactiveKomutun 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-dependenciesProjeden projeye (P2P) başvurularını yoksayar ve yalnızca belirtilen kök projeyi derlemez.
--no-incrementalArtı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-restoreDerleme sırasında örtülü geri yükleme yürütmez.
--nologoBaşlangıç başlığı veya telif hakkı iletisi görüntülenmez. .NET Core 3.0 SDK'dan itibaren kullanılabilir.
--no-self-containedUygulamayı ç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ğiTargetFrameworksaracılığıyla), bu seçeneği--frameworkbelirttiğ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-x64makinede,--os osRID öğesini olarak belirleros-x64. Bu seçeneği kullanırsanız,-r|--runtimeseç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-containedkullanı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]: , , , vem[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 buildYayın yapılandırmasını kullanarak bir proje ve bağımlılıkları oluşturma:
dotnet build --configuration ReleaseBelirli 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-x64Projeyi derleme ve geri yükleme işlemi NuGet belirtilen paket kaynağını kullanın:
dotnet build --source c:\packages\mypackagesProjeyi derleme ve sürüm 1.2.3.4'ü derleme parametresi olarak MSBuild
-payarlayın:dotnet build -p:Version=1.2.3.4