Komut satırından ClickOnce uygulamalarını derleme

Visual Studio'da, tümleşik geliştirme ortamında (IDE) oluşturulmuş olsalar bile komut satırından projeler oluşturabilirsiniz. Aslında, Visual Studio ile oluşturulan bir projeyi yalnızca .NET Framework'ün yüklü olduğu başka bir bilgisayarda yeniden oluşturabilirsiniz. Bu özellik, örneğin merkezi bir derleme laboratuvarında otomatik bir işlem kullanarak veya projenin kendisini oluşturma kapsamının ötesinde gelişmiş betik teknikleri kullanarak bir derlemeyi yeniden oluşturmanıza olanak tanır.

Dekont

Komut satırından .NET ClickOnce uygulamaları oluşturmak için bkz . Komut satırından .NET ClickOnce uygulamaları derleme.

.NET Framework ClickOnce uygulama dağıtımlarını yeniden oluşturmak için MSBuild kullanma

Komut satırında çağırdığınızda msbuild /target:publish , bu komut MSBuild sistemine projeyi oluşturmasını ve yayımlama klasöründe bir ClickOnce uygulaması oluşturmasını emreder. Bu komut, IDE'de Yayımla komutunun seçilmesiyle eşdeğerdir.

Bu komut, Visual Studio komut istemi ortamındaki yolda bulunan msbuild.exe dosyasını yürütür.

"Hedef", msbuild komutunun nasıl işlendiğine ilişkin bir göstergedir. Temel hedefler "derleme" hedefi ve "yayımlama" hedefidir. Derleme hedefi, IDE'de Derleme komutunu seçmeye (veya F5 tuşuna basmaya) eşdeğerdir. Yalnızca projenizi oluşturmak istiyorsanız girebilirsiniz msbuild. Derleme hedefi Visual Studio tarafından oluşturulan tüm projeler için varsayılan hedef olduğundan bu komut çalışır. Sonuç olarak, derleme hedefini açıkça belirtmeniz gerekmez. Bu nedenle, girmek msbuild , girmekle msbuild /target:buildaynı işlemdir.

komutu MSBuild'e /target:publish yayımlama hedefini çağırmasını söyler. Yayımlama hedefi derleme hedefini temel alır ve bu da yayımlama işleminin derleme işleminin üst kümesi olduğu anlamına gelir. Örneğin, Visual Basic veya C# kaynak dosyalarında değişiklik yaptıysanız yayımlama işlemi ilgili derlemeyi otomatik olarak yeniden oluşturur.

ClickOnce bildiriminizi oluşturmak için Mage.exe komut satırı aracını kullanarak tam ClickOnce dağıtımı oluşturma hakkında bilgi için bkz . İzlenecek yol: ClickOnce uygulamasını el ile dağıtma.

MSBuild ile temel bir ClickOnce uygulaması oluşturma ve oluşturma

Yayımlama profili oluşturmanın en kolay yolu Visual Studio'yu kullanmaktır. MSBuild ile yayımlamak için bir yayımlama profili gereklidir.

ClickOnce projesi oluşturma ve yayımlama

  1. Visual Studio'yu açın ve yeni bir proje oluşturun.

    Windows Forms Uygulaması (.NET Framework) veya WPF Uygulaması (.NET Framework) proje şablonunu seçin ve projeyi CmdLineDemoadlandırın.

  2. Oluştur menüsünde Yayımla komutunu seçin.

    Bu adım, projenin bir ClickOnce uygulama dağıtımı üretmek için düzgün bir şekilde yapılandırılmasını sağlar.

    Yayımlama Sihirbazı görüntülenir.

  3. Yayımlama Sihirbazı'nda Son'u seçin.

    Visual Studio, Publish.htm adlı varsayılan web sayfasını oluşturur ve görüntüler.

  4. Projenizi kaydedin ve depolandığı klasör konumunu not edin.

    Yukarıdaki adımlar, ilk kez yayımlanmış bir ClickOnce projesi oluşturur. Artık derlemeyi IDE dışında yeniden oluşturabilirsiniz.

Derlemeyi komut satırından yeniden oluşturma

  1. Visual Studio'dan çıkın.

  2. Windows Başlat menüsünde Araçlar>Komut satırı>Geliştirici Komut İstemi'ni seçin.

    Visual Studio Geliştirici Komut İstemi açılır.

  3. Visual Studio Komut İstemi'nde, geçerli dizinin daha önce oluşturduğunuz projenin konumunu gösterdiğinden emin olun.

    Proje dizininde çalışmıyorsanız, istediğiniz konuma geçmek için bir komut girin, örneğin chdir C:\Users\username\source\repos\CmdLineDemo.

  4. Önceki bölümde oluşturulan mevcut dosyaları kaldırmak için girinrmdir /s publish.

    Bu adım isteğe bağlıdır, ancak komut satırı derlemesinin tüm yeni dosyaları üretmesini sağlar.

  5. msbuild /target:publish girin.

    Yukarıdaki adımlar, projenizin Yayımla adlı alt klasöründe tam bir ClickOnce uygulaması dağıtımı oluşturur. CmdLineDemo.application , ClickOnce dağıtım bildirimidir. CmdLineDemo_1.0.0.0 klasörü, ClickOnce uygulama bildirimi olan CmdLineDemo.exe ve CmdLineDemo.exe.manifest dosyalarını içerir. Kurulum.exe önyükleyicidir ve varsayılan olarak .NET Framework'ü yükleyecek şekilde yapılandırılır. DotNetFX klasörü .NET Framework için yeniden dağıtılabilir dosyaları içerir. Bu konumdaki dosyalar, uygulamanızı web üzerinden veya UNC veya CD/DVD aracılığıyla dağıtmak için ihtiyacınız olan tüm dosya kümesini içerir.

Dekont

MSBuild sistemi, çıktının konumunu belirtmek için PublishDir seçeneğini kullanır, örneğin msbuild /t:publish /p:PublishDir="<specific location>".

Yayımlama işlemi çıktısı

MSBuild, derleme yapıtları da dahil olmak üzere derleme çıkış konumunu ayarlamak için özelliğini kullanır PublishDir . MSBuild'in PublishDir yayımlama için hedef olarak kullandığı değer, varsayılan olarak proje dosyasındaki PublishDir (.NET Framework) özelliğinden alınır. Anahtarı kullanarak /p MSBuild komut satırında bu davranışı geçersiz kılabilirsiniz. Ayarı geçersiz kılarsanız yayımlama çıkışı belirtilen konuma gider. Çıkış, yayımlamanın MSBuild adımı sırasında oluşturulur. Bu kopya yapıldıktan sonra çalıştırılan herhangi bir MSBuild hedefi AfterTargets="ClickOncePublish" .

PublishUrl özelliği, aksinePublishDir, MSBuild adımında kullanılmaz. PublishUrl komut satırından yayımlamak için MSBuild'i doğrudan çağırdığınızda yoksayılır.

Visual Studio IDE'de Yayımlama başlatıldığında, Visual Studio yapıtları PublishDir konumda yayımlamak için MSBuild'i çağırır. Bu MSBuild adımı tamamlandıktan sonra Visual Studio, ClickOnce'a özgü dosyaları tarafından PublishUrlişaret edilen konuma yayımlar. Bu ikinci adım Visual Studio işleminin içinde çalışır. Bu bir Visual Studio işlemi olduğundan, bu adım sırasında çalıştırılacak herhangi bir hedef/görev ekleyemezsiniz.

Visual Studio kullanmayan MSBuild dağıtımları için dağıtım dizinindeki tüm dosyaları dağıtım hedefine veya medyaya kopyalayın. Dağıtım dizini bir web sitesindeki veya FTP sitesindeki bir klasör, dosya paylaşımı veya CD-ROM olabilir. Örneğin, ClickOnce dosyalarını kopyalamak için bir üçüncü taraf aracı veya özel bir MSBuild görevi kullanabilirsiniz.

Klasördeki PublishUrl herhangi bir işlem sonrası için ayrı bir betiğiniz olması gerekir.

Önemli

ile aynı konuma PublishUrlayarlanırsaPublishDir, yinelenen derleme çıktısı PublishUrl konuma kopyalanır. Yeni bir profil oluşturarak Visual Studio 2022 sürüm 17.4 ve sonraki sürümlerde bu sorundan kaçınabilirsiniz. Yeni profil, konumundan PublishUrlfarklı bir konuma ayarlarPublishDir. Yayımlama işleminin sonunda, ilgili ClickOnce dosyaları konumundan konumuna PublishDirPublishUrl kopyalanır.

Yayımlama özellikleri

Uygulamayı önceki yordamları kullanarak yayımladığınızda, Yayımlama Sihirbazı tarafından proje dosyanıza aşağıdaki özellikler eklenir. Bu özellikler ClickOnce uygulamasının nasıl üretildiğini doğrudan etkiler.

CmdLineDemo.vbproj / CmdLineDemo.csproj içinde:

<AssemblyOriginatorKeyFile>WindowsApplication3.snk</AssemblyOriginatorKeyFile>
<GenerateManifests>true</GenerateManifests>
<TargetZone>LocalIntranet</TargetZone>
<PublisherName>Microsoft</PublisherName>
<ProductName>CmdLineDemo</ProductName>
<PublishUrl>http://localhost/CmdLineDemo</PublishUrl>
<Install>true</Install>
<ApplicationVersion>1.0.0.*</ApplicationVersion>
<ApplicationRevision>1</ApplicationRevision>
<UpdateEnabled>true</UpdateEnabled>
<UpdateRequired>false</UpdateRequired>
<UpdateMode>Foreground</UpdateMode>
<UpdateInterval>7</UpdateInterval>
<UpdateIntervalUnits>Days</UpdateIntervalUnits>
<UpdateUrlEnabled>false</UpdateUrlEnabled>
<IsWebBootstrapper>true</IsWebBootstrapper>
<BootstrapperEnabled>true</BootstrapperEnabled>

.NET Framework projeleri için, proje dosyasının kendisini değiştirmeden komut satırında bu özellikleri geçersiz kılabilirsiniz. Örneğin, aşağıdaki kod önyükleyici olmadan ClickOnce uygulama dağıtımını oluşturur:

msbuild /target:publish /property:BootstrapperEnabled=false

Yayımlama özellikleri Visual Studio'da Project Tasarım Aracı Yayımlama, Güvenlik ve İmzalama özellik sayfalarından denetlenmektedir.

Aşağıdaki yayımlama özellikleri, uygulama tasarımcısının çeşitli özellik sayfalarında ayarlanır.

  • AssemblyOriginatorKeyFile ClickOnce uygulama bildirimlerinizi imzalamak için kullanılan anahtar dosyasını belirler. Bu anahtar, derlemelerinize tanımlayıcı bir ad atamak için de kullanılabilir. Bu özellik, Project Tasarım Aracı İmzalama sayfasında ayarlanır.

Güvenlik sayfasında aşağıdaki özellikler ayarlanır:

  • ClickOnce Güvenliği'nin etkinleştirilmesi Ayarlar ClickOnce bildirimlerinin oluşturulup oluşturulmadığını belirler. Bir proje ilk oluşturulduğunda, ClickOnce bildirim oluşturma varsayılan olarak kapalıdır. İlk kez yayımladığınızda sihirbaz bu bayrağı otomatik olarak açar.

  • TargetZone , ClickOnce uygulama bildiriminize yayılacak güven düzeyini belirler. Olası değerler "İnternet", "LocalIntranet" ve "Özel" değerleridir. Internet ve LocalIntranet, ClickOnce uygulama bildiriminize varsayılan izin kümesinin yayılmasına neden olur. LocalIntranet varsayılandır ve temelde tam güven anlamına gelir. Özel, yalnızca base app.manifest dosyasında açıkça belirtilen izinlerin ClickOnce uygulama bildirimine dağıtılması gerektiğini belirtir. app.manifest dosyası, yalnızca güven bilgisi tanımlarını içeren kısmi bir bildirim dosyasıdır. Güvenlik sayfasında izinleri yapılandırdığınızda projenize otomatik olarak eklenen gizli bir dosyadır.

Yayımla sayfasında aşağıdaki özellikler ayarlanır:

  • PublishUrl , uygulamanın IDE'de yayımlandığı konumdur. Hem hem de özelliği belirtilmemişse ClickOnce uygulama bildirimine InstallUrlUpdateUrl eklenir.

  • ApplicationVersion ClickOnce uygulamasının sürümünü belirtir. Sürüm dört basamaklı bir sayıdır. Son basamak bir "*" (yıldız işareti) ise , ApplicationRevision derleme zamanında bildirime eklenen değerle değiştirilir.

  • ApplicationRevision düzeltmeyi belirtir. Bu değer, IDE'de her yayımladığınızda artan bir tamsayıdır. Komut satırında gerçekleştirilen derlemeler için otomatik olarak artırılmaz.

  • Install uygulamanın yüklü bir uygulama mı yoksa Web'den çalıştırılan bir uygulama mı olduğunu belirler.

  • InstallUrl (gösterilmez), kullanıcıların uygulamayı yüklediği konumdur. Belirtilirse, özellik etkinse bu değer setup.exe önyükleyicisine IsWebBootstrapper yazdırılır. Belirtilmezse uygulama bildirimine UpdateUrl de eklenir.

  • SupportUrl(gösterilmez), yüklü bir uygulamanın Program Ekle/Kaldır iletişim kutusunda bağlantılı konumdur.

Aşağıdaki özellikler, Yayımla sayfasından erişilen Uygulama Güncelleştirmeler iletişim kutusunda ayarlanır.

  • UpdateEnabled uygulamanın güncelleştirmeleri denetlemesi gerekip gerekmediğini gösterir.

  • UpdateMode Ön plan güncelleştirmelerini veya Arka plan güncelleştirmelerini belirtir.

  • UpdateInterval uygulamanın güncelleştirmeleri ne sıklıkta denetlemesi gerektiğini belirtir.

  • UpdateIntervalUnits değerin UpdateInterval saat, gün veya hafta cinsinden olup olmadığını belirtir.

  • UpdateUrl (gösterilmez), uygulamanın güncelleştirmeleri aldığı konumdur. Belirtilirse, bu değer uygulama bildirimine eklenir.

Yayımla sayfasından erişilenYayımlama Seçenekleri iletişim kutusunda aşağıdaki özellikler ayarlanır.

  • PublisherName , uygulamayı yüklerken veya çalıştırırken gösterilen istemde görüntülenen yayımcının adını belirtir. Yüklü bir uygulama için, Başlat menüsünde klasör adını belirtmek için de kullanılır.

  • ProductName , uygulamayı yüklerken veya çalıştırırken gösterilen istemde görüntülenen ürünün adını belirtir. Yüklü bir uygulama için, Başlat menüsünde kısayol adını belirtmek için de kullanılır.

Aşağıdaki özellikler, Yayımla sayfasından erişilen Önkoşullar iletişim kutusunda ayarlanır.

  • BootstrapperEnabledsetup.exe önyükleyicisinin oluşturulup oluşturulmayacağını belirler.

  • IsWebBootstrappersetup.exe önyükleyicisinin Web üzerinden mi yoksa disk tabanlı modda mı çalıştığını belirler.

Seçenekleri kullanma: InstallURL, SupportUrl, PublishURL, UpdateURL

Aşağıdaki tabloda ClickOnce dağıtımı için dört URL seçeneği gösterilmektedir.

URL seçeneği Açıklama
PublishURL ClickOnce uygulamasını bir web sitesinde yayımlamak için gereklidir.
InstallURL isteğe bağlı. Yükleme sitesi değerinden PublishURLfarklıysa bu URL seçeneğini ayarlayın. Örneğin, öğesini PublishURL bir FTP yolu olarak ve bir web URL'si InstallURL olarak ayarlayabilirsiniz.
SupportURL isteğe bağlı. Destek sitesi değerinden PublishURLfarklıysa bu URL seçeneğini ayarlayın. Örneğin, öğesini şirketinizin müşteri desteği web sitesine ayarlayabilirsiniz SupportURL .
UpdateURL isteğe bağlı. Güncelleştirme konumu değerinden InstallURLfarklıysa bu URL seçeneğini ayarlayın. Örneğin, öğesini PublishURL bir FTP yolu olarak ve bir web URL'si UpdateURL olarak ayarlayabilirsiniz.