1. NET Core komut satırı arayüzü (CLI) aracı project.json kullanımdan kaldırıldı ve yerine .csproj dosyası getirildi; bu dosya project.json erken .NET çekirdeğinde proje yapılandırma dosyası olarak kullanılıyordu ve Microsoft'un bazı sorunları keşfettikten sonra bu dosyayı kullanımdan kaldırdığı tahmin ediliyor; MSBuild ise hâlâ .net derleme aracı olarak kullanılıyordu.
MSBuild şunları tanıtıyor:https://docs.microsoft.com/zh-cn ... sbuild?view=vs-2017
VS derleme ve oluşturma yaptığımızda, VS sadece MSBuild aracını çağırmamıza yardımcı oluyor, yani .NET projesini derlediğimizde VS aracını hiç yüklememize gerek kalmıyor.
.NET Core CLI araç komutu şu şekildedir:
.NET Komut Satırı Araçları (2.1.301) Kullanım: dotnet [çalışma zamanı seçenekleri] [uygulamaya giden yol] Kullanım: dotnet [sdk-options] [komut] [argümanlar] [komut-seçenekler]
path-to-application: Uygulamaya giden yol .dll çalıştırılacak dosya.
SDK komutları: .NET projesini başlatır. .NET projesinde belirtilen bağımlılıkları geri yüklemek. .NET projesini hemen çalıştırıp çalıştır. .NET projesini oluştur. publish dağıtımı için .NET projesi yayımlar (çalışma zamanı dahil). Projede belirtilen test koşucusunu kullanarak birim testleri çalıştırılır. paket olarak bir NuGet paketi oluşturabilirsiniz. project.json tabanlı projeleri MSBuild tabanlı projelere taşıyor. Temiz, temiz ve üretilen çıktı. SLN Modifikasyon Çözümü (SLN) dosyası. Referansa ek edin. projeden çıkar. Projenin referans verdiği veya kurduğu araçları listeleyin. NuGet, ek NuGet komutları sağlar. msbuild, Microsoft Build Engine (MSBuild) ile çalışır. vstest, Microsoft Test Execution komut satırı aracını çalıştırır. Store, belirtilen montajı çalışma zamanı deposunda saklar. .NET deneyimini genişleten araçları kurmak veya kullanmak için bir araç kullandı. Build-server, build sürümü tarafından başlatılan sunucuyla etkileşime girer. Yardım gösterir.
Yaygın Seçenekler: -v|--komut detay seviyesini belirler. İzin verilen değerler Q[UIET], M[inimal], N[Ormal], D[etailed] ve diag[nostik]'dir. -Yardım gösterisi yardım gösteriyor.
Dotnet komutunu çalıştırın --komut hakkında daha fazla bilgi almak için yardım edin.
sdk-options: --sürüm, kullanılan .NET Core SDK sürümünü gösterir. --info, .NET Core bilgilerini gösterir. --list-sdks kurulu SDK'yı göstermek için. --list-runtimes kurulu çalışma zamanını gösterir. -d|--diagnostik tanı çıkışını sağlar.
runtime-options: --additionalprobingpath <path> Sonda politikasını ve sondaj montajını içeren yol. --uygulamayı çalıştırmak için <version> kullanılacak paylaşılan çerçevenin kurulu versiyonunun fx sürümü. --roll-forward-on-no-candidate-fx "No Roll Forward to Candidate Shared Framework" etkinleştirildi. --diğer <path> deps.json dosyalarına giden yola ek depe'ler.
Ek araçlar ('dotnet [tool-name] --help' daha fazla bilgi için): dev-cert'ler Geliştirme sertifikaları oluşturun ve yönetin. ef Entity Framework Core komut satırı araçları. sql-cache SQL Server önbellek komut satırı araçları. kullanıcı sırları Geliştirme kullanıcı sırlarını yönetin. Dosyalar değiştiğinde komut çalıştıran bir dosya izleyicisini başlat.
2. Derleme ve yayın
Dağıtım için bir .NET projesi yayınlayın (çalışma zamanı dahil). dotnet publish
C:\project\dotnet\test1>dotnet publish --help Kullanım: dotnet publish [seçenekler]
Seçenekler: -h, --yardım yardım bilgilerini gösteriyor. -o, --çıktı, <OUTPUT_DIR> yayınlanan öğenin çıktı dizinini yerleştirmek için kullanılır. -f, --framework <FRAMEWORK> Yayınlanacak hedef çerçeve. Hedef çerçeve proje belgesinde belirtilmelidir. -r, --runtime <RUNTIME_IDENTIFIER> projeyi belirli bir çalışma zamanı için yayınla. Kendi içinde yeter dağıtımlar oluştururken bunu kullanın. Varsayılan işlem, framework'e bağlı bir uygulama yayınlamaktır. -c, --yapılandırma <CONFIGURATION> projenin konfigürasyonunu oluşturmak için kullanılır. Çoğu proje için varsayılan değer "Debug"dur. --version-sufffix <VERSION_SUFFIX> projenizdeki $(VersionSuffix) özelliğinin değerini tanımlar. --manifest <manifest.xml> Yayınlama adımında yürütülecek paketlerin listesini içeren hedef manifesto dosyasına giden yol. --no-build Projeyi yayınlamadan önce inşa etme. Geri kazanılmadığını ima ediyor. --kendi içinde yeter olan eşlik uygulamalar, .NET Core çalışma zamanlarını yayınlar, böylece çalışma zamanını hedef makineye yükleme ihtiyacını ortadan kaldırır. Bir çalışma zamanı tanımlayıcısı belirtilirse, varsayılan olarak "true" olarak belirlenir. --no-restore Komutu çalıştırırken örtük bir geri yükleme yapma. -v, --çok sözlülük, komutun detay seviyesini belirler. İzin verilen değerler Q[UIET], M[inimal], N[Ormal], D[etailed] ve diag[nostik]'dir. --no-dependencies bu bayrağı projeden projeye referansları görmezden gelecek ve sadece kök projeyi geri getirecek şekilde ayarlar. --tüm bağımlılıkların çözülmesini zorunlu kılan kuvvet, son geri dönüşüm başarılı olsa bile. Bu, project.assets.json silmeye eşdeğer. Yürütme açısından, CLI komutları parametrelerini alır ve istenen özellikleri ve çalıştırılması gereken hedefi belirlemek için "orijinal" MSBuild'e bir çağrı oluşturur. Bunu daha iyi açıklamak için aşağıdaki komuta bakınız:
Bu komut, uygulamayı Publish yapılandırmasını kullanarak yayın klasörüne yayınlar. Dahili olarak, bu komut aşağıdaki MSBuild çağrısına çevrilir:
Uygulamanız için hedef platformu tanımlayın
csproj dosyasının (uygulamanızın hedef platformunu tanımlamak için kullanılan bölümde) bir etiket oluşturun <PropertyGroup> <RuntimeIdentifiers> ve ardından her hedef platform için çalışma zamanı tanımlayıcısını (RID) belirtin. RID'leri ayırmak için nokta virgül de gereklidir. Çalışma zamanı tanımlayıcılarının listesi için Çalışma Zamanı Tanımlayıcı Kataloğuna bakın. Örneğin, aşağıdaki <PropertyGroup> bölüm uygulamanın 64-bit Windows 10 işletim sistemi ve 64-bit OS X sürüm 10.11 işletim sisteminde çalıştığını göstermektedir.
Sadece win10 x64 platformunun altında bir dağıtım oluşturmak istersek, aşağıdaki komutu çalıştırabiliriz:
Çıkış klasörü: C:\project\dotnet\test1\bin\release\netcoreapp2.1\win10-x64\publish, tüm klasörün içinde 66M var, ki bu oldukça büyük, aşağıdaki şekilde gösterilmiştir:
Sürüm paketini centos.7-x64 platformunda oluştur, 70M var, o da oldukça büyük, yürütmek için centos 7'de yayınlayalım (.NET Core SDK, CentOS 7 sistemlerine yüklenmemiştir)。
Sistem bilgileri aşağıdaki gibidir:
[root@master ~]# uname -a Linux master 3.10.0-862.el7.x86_64 #1 SMP Cum 20 Nisan 16:44:24 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux [root@master ~]# kedi /vb/redhat-release CentOS Linux sürüm 7.6.1810 (Çekirdek) Dosyayı geçici dizinine yüklüyoruz ve test1 dosyasını çalıştırmaya çalışıyoruz; bu dosya normal şekilde çıktı olarak alınabilir:
[root@master ~]# mkdir temp [root@master ~]# cd temp/ [root@master sıcaklığı]# ./test1 -bash: ./test1: Yeterli izin yok [root@master temp]# cd .. [root@master ~]# chmod -R 777 temp/ [root@master ~]# cd temp/ [root@master sıcaklığı]# ./test1 Merhaba Dünya! [root@master temp]# yankı "http://www.itsvse.com"
http://www.itsvse.com [root@master sıcaklık] #
3、. NET Core Çalıştırma Tanımlayıcısı
.NET Core RID, RID, Runtime Identifier'ın kısaltmasıdır. RID değerleri, uygulamanın çalıştığı hedef platformu tanımlamak için kullanılır. .NET paketleri, bunları NuGet paketlerinde platforma özgü varlıkları temsil etmek için kullanır. Aşağıdaki değerler RID örnekleridir: linux-x64, ubuntu.14.04-x64, win7-x64 veya osx.10.12-x64. Yerel bağımlılığa sahip paketler için, RID paketin geri yüklenebileceği platformu belirler.
<RuntimeIdentifier> Proje dosyasının elemanında bir RID ayarlayabilirsiniz. Birden fazla RID, <RuntimeIdentifiers> bir proje dosyasının elemanlarında nokta virgülle ayrılmış bir liste olarak tanımlanabilir.
Belirli bir işletim sistemini temsil eden RID'ler genellikle şu deseni takip eder: [os]. [sürüm]-[mimari]-[ek nitelendirmeler], burada:
- [OS] işletim sistemi/platform sistemi adıdır. Örneğin, ubuntu.
- [sürüm] işletim sistemi sürümüdür ve bir nokta (.) sürüm numarasıyla biçimlendirilir. Örneğin, 15.10. Sürümler pazarlama sürümü olmamalıdır, çünkü genellikle farklı platform API çevre birimlerine sahip birden fazla işletim sistemi ayrı versiyonunu temsil ederler.
- [mimari] işlemci mimarisidir. Örneğin: x86, x64, arm veya arm64.
- [ek nitelendirmeler] farklı platformlar arasında ayrım daha da sağlar. Örneğin AOT veya Corert.
Özel giriş:https://docs.microsoft.com/zh-cn/dotnet/core/rid-catalog
4、. NET Core, NuGet paketleri oluşturur
.NET Standard ve .NET Core için tüm kütüphaneler NuGet paketleri olarak yayımlanmalıdır. Aslında, tüm .NET standart kütüphaneleri böyle yayımlanır ve kullanılır. Bu, dotnet pack komutu kullanılarak kolayca gerçekleştirilebilir.
(Son)
|