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 derlemesi 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ımlama 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'nun Yayımlama sayfasındaki 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 Görünüm>Terminal 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ı, üretimde çalışan dağıtılan bir site için uygun olan Yayın'dır. 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ştur'da oluşturduğunuzu 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 dotnet HelloWorld.dll 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. Solution Explorer'da Tüm Dosyaları Göster'i seçin.

    Solution Explorer 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.)

    yayımlanan dosyaları gösteren Solution Explorer yayımlanan dosyalar.

    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 dotnet HelloWorld.dll . 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 HelloWorld.exe . 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 dotnet HelloWorld.dll .

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 dotnet HelloWorld.dll . 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, dotnet 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 dotnet HelloWorld.dll . 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'nde publish klasörüne sağ tıklayın ve Tam Yolu Kopyala'yı seçin.

  2. Bir komut istemi açın ve yayımla klasörüne gidin. Bunu yapmak için önce cd 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. HelloWorld.exe 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 dotnet uygulamayı çalıştırın:

    1. dotnet HelloWorld.dll 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.

    Bağlam menüsünde Terminalde Aç seçeneği gösteriliyor

  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 ./HelloWorld yazın ve 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 dotnet komutunu kullanarak uygulamayı çalıştırın.

    1. dotnet HelloWorld.dll 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 ./HelloWorld 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.