Aracılığıyla paylaş


Öğretici: .NET konsol uygulaması yayımlama

Bu öğretici, diğer kullanıcıların çalıştırabilmesi için bir konsol uygulamasının nasıl yayımlandığını gösterir. Yayımlama, bir uygulamayı çalıştırmak için gereken dosya kümesini oluşturur. Dosyaları dağıtmak için hedef makineye kopyalayın.

Önkoşullar

Uygulamayı yayımlayın

  1. Visual Studio'ı başlatın.

  2. HelloWorld projesini açın> .NET konsol uygulaması oluşturun.

  3. Visual Studio Sürüm derleme yapılandırmasını kullandığından emin olun. Gerekirse, araç çubuğundaki derleme yapılandırma ayarını Hata Ayıklamadan Yayına değiştirin.

    Visual Studio araç çubuğunda sürüm oluşturma seçeneği seçili.

  4. HelloWorld projesine ( HelloWorld çözümü değil) sağ tıklayın ve menüden Yayımla'yı seçin.

    Visual Studio Yayınla bağlam menüsü.

  5. Yayımla sayfasının Hedef sekmesinde Klasör'ü ve ardından İleri'yi seçin.

    Visual Studio'da bir yayımlama hedefi seçin.

  6. Belirli Hedef sekmesinde Klasör'ü seçin, ardından İleri'yi seçin.

    Visual Studio'da belirli yayımlama hedefini seçin.

  7. Yayımla sayfasının Konum sekmesinde Son'u seçin.

    Visual Studio Yayımlama sayfası Konum sekmesi.

  8. Yayımlama profili oluşturma ilerleme durumu sayfasında Kapat'ı seçin.

  9. Yayımla penceresinin Yayımla sekmesinde Yayımla'yı seçin.

    Visual Studio Publish window.

  1. Visual Studio Code'ı başlatın.

  2. HelloWorld proje klasörünü açın> .NET konsol uygulaması oluşturun.

  3. Ana menüden ViewTerminal'i seçin.

    Terminal HelloWorld klasöründe açılır.

  4. Aşağıdaki komutu çalıştırın:

    dotnet publish
    

    Varsayılan derleme yapılandırması, bir siteyi dağıtım sonrası üretim ortamında çalıştırmak için uygun olan Release'dir. Yayın derleme yapılandırmasının çıktısı minimum simgesel hata ayıklama bilgileri içerir ve tamamen optimize edilmiştir.

    Komut çıktısı aşağıdaki örneğe benzer:

    Restore complete (1.1s)
      HelloWorld net10.0 succeeded (7.8s) → bin\Release\net10.0\publish\
    
    Build succeeded in 10.3s
    
  1. GitHub Codespace'inizi .NET konsol uygulaması oluşturun adımında oluşturduğunuz şekilde açın.

  2. aşağıdaki kod satırını HelloWorld.cs en üstüne ekleyin:

    #:property PublishAot=false
    

    Bu özellik yönergesi, yerel zamandan önce derlemeyi (AOT) devre dışı bırakır ve uygulama, çalışma zamanında standart tam zamanında (JIT) derleyicisini kullanır. Yayımlanan çıkış çerçeveye bağımlı olacaktır.

  3. Terminalde öğreticiler klasöründe olduğunuzdan emin olun.

  4. Aşağıdaki komutu çalıştırın:

    dotnet publish HelloWorld.cs
    

    komutu bağımsız bir yürütülebilir dosya oluşturur.

    Komut çıktısı aşağıdaki örneğe benzer:

    Restore complete (0.5s)
      HelloWorld net10.0 succeeded (4.0s) → artifacts\HelloWorld\
    
    Build succeeded in 5.1s
    

Dosyaları inceleme

Yayımlama işlemi varsayılan olarak, yayımlanan uygulamanın .NET çalışma zamanının yüklü olduğu bir makinede çalıştığı bir dağıtım türü olan çerçeveye bağımlı bir dağıtım oluşturur. Kullanıcılar, yürütülebilir dosyaya çift tıklayarak veya komut isteminden komutu vererek yayımlanan uygulamayı çalıştırabilir.

Aşağıdaki adımlarda yayımlama işlemi tarafından oluşturulan dosyalara göz atacaksınız.

  1. Çözüm Gezgini'da Tüm Dosyaları Göster'i seçin.

    Çözüm Gezgini seçeneğiyle Tüm Dosyaları Göster.

  2. Proje klasöründe bin/Release/{net}/publish yolunu genişletin. (Burada {net}, net10.0 gibi hedef çerçeve klasörüdür.)

    Çözüm Gezgini, yayımlanan dosyaları gösteriyor.

    Resimde gösterildiği gibi, yayımlanan çıktı aşağıdaki dosyaları içerir:

    • HelloWorld.deps.json

      Bu, uygulamanın çalışma zamanı bağımlılıkları dosyasıdır. Uygulamayı çalıştırmak için gereken .NET bileşenlerini ve kitaplıkları (uygulamanızı içeren dinamik bağlantı kitaplığı dahil) tanımlar. Daha fazla bilgi için bkz . Çalışma zamanı yapılandırma dosyaları.

    • HelloWorld.dll

      Bu, uygulamanın çerçeveye bağımlı dağıtım sürümüdür. Bu dinamik bağlantı kitaplığını yürütmek için komut istemine girin . Uygulamayı çalıştırmanın bu yöntemi, .NET çalışma zamanının yüklü olduğu tüm platformlarda çalışır.

    • HelloWorld.exe

      Bu, uygulamanın çerçeveye bağımlı yürütülebilir sürümüdür. Çalıştırmak için komut istemine girin . Dosya işletim sistemine özgüdür.

    • HelloWorld.pdb (dağıtım için isteğe bağlı)

      Bu hata ayıklama simgeleri dosyasıdır. Bu dosyayı uygulamanızla birlikte dağıtmanız gerekmez, ancak uygulamanızın yayımlanmış sürümünde hata ayıklamanız gerektiğinde dosyayı kaydetmeniz gerekir.

    • HelloWorld.runtimeconfig.json

      Bu, uygulamanın çalışma zamanı yapılandırma dosyasıdır. Uygulamanızın üzerinde çalışmak üzere oluşturulduğu .NET sürümünü tanımlar. Buna yapılandırma seçenekleri de ekleyebilirsiniz. Daha fazla bilgi için bkz. .NET çalışma zamanı yapılandırma ayarları.

Yayımlama işlemi varsayılan olarak, yayımlanan uygulamanın .NET çalışma zamanının yüklü olduğu bir makinede çalıştığı bir dağıtım türü olan çerçeveye bağımlı bir dağıtım oluşturur. Yayımlanan uygulamayı çalıştırmak için yürütülebilir dosyayı kullanabilir veya komutu bir komut isteminden çalıştırabilirsiniz .

Aşağıdaki adımlarda yayımlama işlemi tarafından oluşturulan dosyalara göz atacaksınız.

  1. Sol gezinti çubuğunda Gezgin'i seçin.

  2. bin/Release/net10.0/publish genişletin.

    Yayımlanan dosyaları gösteren gezgin

    Resimde gösterildiği gibi, yayımlanan çıktı aşağıdaki dosyaları içerir:

    • HelloWorld.deps.json

      Bu, uygulamanın çalışma zamanı bağımlılıkları dosyasıdır. Uygulamayı çalıştırmak için gereken .NET bileşenlerini ve kitaplıkları (uygulamanızı içeren dinamik bağlantı kitaplığı dahil) tanımlar. Daha fazla bilgi için bkz . Çalışma zamanı yapılandırma dosyaları.

    • HelloWorld.dll

      Bu, uygulamanın çerçeveye bağımlı dağıtım sürümüdür. Bu dinamik bağlantı kitaplığını çalıştırmak için komut istemine girin . Uygulamayı çalıştırmanın bu yöntemi, .NET çalışma zamanının yüklü olduğu tüm platformlarda çalışır.

    • HelloWorld.exe (Linux veya macOS'ta HelloWorld .)

      Bu, uygulamanın çerçeveye bağımlı yürütülebilir sürümüdür. Dosya işletim sistemine özgüdür.

    • HelloWorld.pdb (dağıtım için isteğe bağlı)

      Bu hata ayıklama simgeleri dosyasıdır. Bu dosyayı uygulamanızla birlikte dağıtmanız gerekmez, ancak uygulamanızın yayımlanmış sürümünde hata ayıklamanız gerektiğinde dosyayı kaydetmeniz gerekir.

    • HelloWorld.runtimeconfig.json

      Bu, uygulamanın çalışma zamanı yapılandırma dosyasıdır. Uygulamanızın üzerinde çalışmak üzere oluşturulduğu .NET sürümünü tanımlar. Buna yapılandırma seçenekleri de ekleyebilirsiniz. Daha fazla bilgi için bkz. .NET çalışma zamanı yapılandırma ayarları.

Tek dosyalı bir uygulama için, derleme süreci sonucu derlenmiş bir bütünleştirilmiş kod dosyası içeren bir çıktı dizini oluşturulur. Yayınlanmış uygulama, komutu kullanılarak çalıştırılabilir.

Aşağıdaki adımlarda yayımlama işlemi tarafından oluşturulan dosyalara göz atacaksınız.

  1. Sol gezinti çubuğunda Gezgin'i seçin.

  2. Yapıtları/HelloWorld'i genişletin.

    Yayımlanan dosyaları gösteren gezgin

    Resimde gösterildiği gibi, yayımlanan çıktı aşağıdaki dosyaları içerir:

    • Helloworld

      Bu, uygulamanın çerçeveye bağımlı yürütülebilir sürümüdür. Dosya işletim sistemine özgüdür. Codespaces Linux üzerinde çalıştığından bu bir Linux yürütülebilir dosyasıdır.

    • HelloWorld.deps.json

      Bu, uygulamanın çalışma zamanı bağımlılıkları dosyasıdır. Uygulamayı çalıştırmak için gereken .NET bileşenlerini ve kitaplıkları (uygulamanızı içeren dinamik bağlantı kitaplığı dahil) tanımlar. Daha fazla bilgi için bkz . Çalışma zamanı yapılandırma dosyaları.

    • HelloWorld.dll

      Bu, uygulamanın çerçeveye bağımlı dağıtım sürümüdür. Bu dinamik bağlantı kitaplığını çalıştırmak için komut istemine girin . Uygulamayı çalıştırmanın bu yöntemi, .NET çalışma zamanının yüklü olduğu tüm platformlarda çalışır.

    • HelloWorld.pdb (dağıtım için isteğe bağlı)

      Bu hata ayıklama simgeleri dosyasıdır. Bu dosyayı uygulamanızla birlikte dağıtmanız gerekmez, ancak uygulamanızın yayımlanmış sürümünde hata ayıklamanız gerektiğinde dosyayı kaydetmeniz gerekir.

    • HelloWorld.runtimeconfig.json

      Bu, uygulamanın çalışma zamanı yapılandırma dosyasıdır. Uygulamanızın üzerinde çalışmak üzere oluşturulduğu .NET sürümünü tanımlar. Buna yapılandırma seçenekleri de ekleyebilirsiniz. Daha fazla bilgi için bkz. .NET çalışma zamanı yapılandırma ayarları.

    Codespaces'tan yerel bilgisayarınıza dosya indirmek için sağ tıklayın ve İndir... öğesini seçin.

Yayımlanan uygulamayı çalıştırma

  1. Çözüm Gezgini'ın içinde publish klasörüne sağ tıklayıp Tam Yolu Kopyala'yı seçin.

  2. Bir komut istemi açın ve yayımla klasörüne gidin. Bunu yapmak için önce girin ve ardından tam yolu yapıştırın. Örneğin:

    cd C:\Projects\HelloWorld\bin\Release\net10.0\publish\
    
  3. Yürütülebilir dosyayı kullanarak uygulamayı çalıştırın:

    1. girin ve 'e basarak'yi girin.

    2. İstemi yanıt olarak bir ad girin ve çıkmak için herhangi bir tuşa basın.

  4. Komutunu kullanarak uygulamayı çalıştırın:

    1. girin ve 'e basarak'yi girin.

    2. İstemi yanıt olarak bir ad girin ve çıkmak için herhangi bir tuşa basın.

  1. Gezgin'deyayımla klasörüne sağ tıklayın (macOS'a Ctrl tuşunu basılı tutarak tıklayın) ve Tümleşik Terminalde Aç'ı seçin.

    Terminalde Aç seçeneğini gösteren bağlam menüsü

  2. Windows veya Linux'ta yürütülebilir dosyayı kullanarak uygulamayı çalıştırın.

    1. Windows .\HelloWorld.exe girin ve Enter tuşlarına basın.

    2. Linux'ta bir komut girin ve ardından Enter tuşuna basın.

    3. İstemi yanıt olarak bir ad girin ve çıkmak için Enter tuşuna basın.

  3. Herhangi bir platformda komutunu kullanarak uygulamayı çalıştırın:

    1. girin ve 'e basarak'yi girin.

    2. İstemi yanıt olarak bir ad girin ve çıkmak için Enter tuşuna basın.

  1. Gezgin'deartifacts/HelloWorld klasörüne sağ tıklayın ve Tümleşik Terminalde Aç'ı seçin.

  2. Yürütülebilir dosyayı kullanarak uygulamayı çalıştırın. Girin ve Enter tuşuna basın.

  3. İstemi yanıt olarak bir ad girin ve çıkmak için Enter tuşuna basın.

Ek kaynaklar

Kaynakları temizleme

GitHub, 30 günlük işlem yapılmadıktan sonra Codespace'inizi otomatik olarak siler. Bu serideki diğer öğreticileri keşfetmeyi planlıyorsanız, Codespace'inizi (kod çalışma alanı) hazır durumda bırakabilirsiniz. .NET SDK'yı indirmek için .NET sitesini ziyaret etmeye hazırsanız Codespace'ınızı silebilirsiniz. Codespace'ınızı silmek için bir tarayıcı penceresi açın ve Codespaces'inize gidin. Pencerede kod boşluklarınızın listesini görürsünüz. Learn öğreticisi kod alanı için girdideki üç noktayı () seçin. Ardından "Sil"i seçin.

Sonraki Adımlar

Bu öğreticide bir konsol uygulaması yayımladınız. Sonraki öğreticide bir sınıf kitaplığı oluşturacaksınız.