ASP.NET Core uygulama dağıtımı için Visual Studio yayın profilleri (.pubxml)

Note

Bu, bu makalenin en son sürümü değildir. Geçerli sürüm için bu makalenin .NET 10 sürümüne bakın.

Warning

ASP.NET Core'un bu sürümü artık desteklenmiyor. Daha fazla bilgi için bkz . .NET ve .NET Core Destek İlkesi. Geçerli sürüm için bu makalenin .NET 10 sürümüne bakın.

Tarafından Sayed Ibrahim Hashimi ve Rick Anderson

Bu belge , yayımlama profilleri oluşturmak ve kullanmak için Visual Studio 2022 veya üzerini kullanmaya odaklanır. Visual Studio ile oluşturulan yayımlama profilleri MSBuild ve Visual Studio ile kullanılabilir. Azure'da yayımlama yönergeleri için bkz . Visual Studio ile ASP.NET Core uygulamasını Azure'da yayımlama.

En güncel ve ayrıntılı bilgi için:

dotnet new mvc komutu, kök düzeydeki <Proje> elemanını içeren aşağıdaki bir proje dosyası oluşturur:

<Project Sdk="Microsoft.NET.Sdk.Web">
    <!-- omitted for brevity -->
</Project>

Yukarıdaki <Project> öğenin özniteliği sırasıyla $(MSBuildSDKsPath)\Microsoft.NET.Sdk.Web\Sdk\Sdk.props ve $(MSBuildSDKsPath)\Microsoft.NET.Sdk.Web\Sdk\Sdk.targets konumundan MSBuild özelliklerini Sdk ve hedeflerini içeri aktarır. (Visual Studio 2022 ile) için $(MSBuildSDKsPath) varsayılan konum %programfiles%\Microsoft Visual Studio\2022\Preview\MSBuild\Sdks klasörüdür.

Microsoft.NET.Sdk.Web(Web SDK'sı), (Microsoft.NET.Sdk) ve (Microsoft.NET.Sdk.Razor) dahil olmak üzere Razor diğer SDK'lara bağlıdır. Her bağımlı SDK ile ilişkili MSBuild özellikleri ve hedefleri içeri aktarılır. Yayımlama hedefleri, kullanılan yayımlama yöntemine göre uygun hedef kümesini içeri aktarır.

MSBuild veya Visual Studio bir projeyi yüklediğinde aşağıdaki üst düzey eylemler gerçekleşir:

  • Proje oluşturma
  • Yayımlamak için dosyaları hesapla
  • Dosyaları hedefe yayımlama

Proje öğelerini hesaplama

Proje yüklendiğinde, MSBuild proje öğeleri (dosyalar) hesaplanır. Öğe türü, dosyanın nasıl işleneceğini belirler. Varsayılan olarak, .cs dosyalar öğe listesine eklenir Compile . Compile Öğe listesindeki dosyalar derlenir.

Öğe Content listesi, derleme çıkışlarına ek olarak yayımlanan dosyaları içerir. Varsayılan olarak, wwwroot\**, **\*.config ve **\*.json desenleri ile eşleşen dosyalar Content öğe listesine eklenir. Örneğin, wwwroot\**globbing deseni wwwroot klasöründeki ve alt klasörlerindeki tüm dosyaları eşleştirir.

Web SDK, Razor SDK'sini içeri aktarır. Sonuç olarak, **\*.cshtml ve **\*.razor desenlerini eşleştiren dosyalar, Content öğe listesine de eklenir.

Web SDK, Razor SDK'yi içeri aktarır. Sonuç olarak, desenle **\*.cshtml eşleşen dosyalar da öğe listesine eklenir Content .

Yayımlama listesine açıkça bir dosya eklemek için, Dosyayı Dahil Et bölümünde gösterildiği gibi dosyayı doğrudan .csproj dosyaya ekleyin.

Visual Studio Publish düğmesini seçerken veya komut satırından yayımlarken:

  • Özellikler/öğeler hesaplanır (oluşturmak için gereken dosyalar).
  • Yalnızca Visual Studio: NuGet paketleri geri yüklenir. (Geri yükleme, kullanıcı tarafından CLI üzerinde açıkça belirtilmelidir.)
  • Proje oluşturuluyor.
  • Yayımlama öğeleri hesaplanır (yayımlamak için gereken dosyalar).
  • Proje yayımlanır (hesaplanan dosyalar yayımlama hedefine kopyalanır).

ASP.NET Core projesi proje dosyasında Microsoft.NET.Sdk.Web başvurduğunda, web uygulaması dizininin köküne bir app_offline.htm dosyası yerleştirilir. Dosya mevcut olduğunda ASP.NET Core Modülü uygulamayı düzgün bir şekilde kapatır ve dağıtım sırasında app_offline.htm dosyasını kullanıma sunar. Daha fazla bilgi için bkz. ASP.NET Core Modülü yapılandırma başvurusu.

Temel komut satırı yayımlama

Komut satırı ile yayımlama, .NET destekli tüm platformlarda çalışır ve Visual Studio gerektirmez. Aşağıdaki örneklerde. .NET CLI'nın dotnet publish komutu proje dizininden (dosyayı içeren .csproj ) çalıştırılır. Proje klasörü geçerli çalışma dizini değilse, proje dosya yolunu açıkça geçirin. Örneğin:

dotnet publish C:\Webs\Web1

Web uygulaması oluşturmak ve yayımlamak için aşağıdaki komutları çalıştırın:

dotnet new mvc
dotnet publish

dotnet publish komutu aşağıdaki çıkışın bir çeşitlemini oluşturur:

C:\Webs\Web1>dotnet publish
Restore complete (0.4s)
  Web1 succeeded (9.2s) → bin\Release\net9.0\publish\

Varsayılan yayımlama klasörü biçimidir bin\Debug\{TARGET FRAMEWORK MONIKER}. Örneğin, bin\Release\net9.0\

Aşağıdaki komut bir Release derlemeyi ve yayımlama dizinini belirtir:

dotnet publish -c Release -o C:\MyWebs\test

dotnet publish komutu, Publish hedefini çağıran MSBuild'i çağırır. dotnet publish'ye geçirilen herhangi bir parametre MSBuild'e de aktarılır. -c ve -o parametreleri sırasıyla MSBuild'in Configuration ve OutputPath özellikleriyle eşler.

MSBuild özellikleri aşağıdaki biçimlerden biri kullanılarak geçirilebilir:

  • -p:<NAME>=<VALUE>
  • /p:<NAME>=<VALUE>

Örneğin, aşağıdaki komut bir Release derlemeyi bir ağ paylaşımında yayımlar. Ağ paylaşımı öne eğik çizgilerle (//r8/) belirtilir ve desteklenen tüm .NET platformlarında çalışır.

dotnet publish -c Release /p:PublishDir=//r8/release/AdminWeb

Dağıtım için yayımlanan uygulamanın çalışmadığını onaylayın. Uygulama çalışırken yayımlama klasöründeki dosyalar kilitlenir. Kilitli dosyalar kopyalanamadığından dağıtım gerçekleştirilemiyor.

Daha fazla bilgi için bkz. Microsoft.NET.Sdk.Publish benioku dosyası.

Profilleri yayımlama

Bu bölümde yayımlama profili oluşturmak için Visual Studio 2022 veya üzeri kullanılır. Profil oluşturulduktan sonra Visual Studio'dan veya komut satırından yayımlama kullanılabilir. Yayımlama profilleri yayımlama işlemini basitleştirebilir ve istediğiniz sayıda profil bulunabilir.

Aşağıdaki yollardan birini seçerek Visual Studio'da yayımlama profili oluşturun:

  • Çözüm Gezgini'nde projeye sağ tıklayın ve Yayımla öğesini seçin.
  • Oluştur menüsünden Yayımla {PROJECT NAME} öğesini seçin.

Uygulama özellikleri sayfasının Yayımla sekmesi görüntülenir. Aşağıdakiler dahil olmak üzere çeşitli yayımlama hedefleri mevcuttur:

  • Azure
  • Docker Kapsayıcı Kayıt Defteri
  • Folder
  • IIS, FTP, Web Dağıtımı (herhangi bir web sunucusu için)
  • Profili İçeri Aktar

En uygun yayın hedefini belirlemek için bkz Benim için hangi yayımlama seçenekleri uygun.

Klasör yayımlama hedefi seçildiğinde, yayımlanan varlıkları depolamak için bir klasör yolu belirtin. Varsayılan klasör yolu : bin\{PROJECT CONFIGURATION}\{TARGET FRAMEWORK MONIKER}\publish\. Örneğin, bin\Release\netcoreapp2.2\publish\. Bitirmek için Profil Oluştur düğmesini seçin.

Yayımlama profili oluşturulduktan sonra Yayımla sekmesinin içeriği değişir. Yeni oluşturulan profil bir açılan listede görünür. Açılan listenin altında Yeni profil oluştur'u seçerek başka bir yeni profil oluşturun.

Visual Studio'nun yayımlama aracı, yayımlama profilini açıklayan bir Properties/PublishProfiles/{PROFILE NAME}.pubxml MSBuild dosyası oluşturur. .pubxml dosyası:

  • Yayımlama yapılandırma ayarlarını içerir ve yayımlama işlemi tarafından kullanılır.
  • Derleme ve yayımlama işlemini özelleştirmek için değiştirilebilir.

Azure hedefinde yayımlama yaparken .pubxml dosyası:

  • Azure abonelik tanımlayıcısını içerir.
  • Abonelik tanımlayıcısı hassas bir bilgi olduğundan kaynak denetimine kaydedilmemelidir.

Yayımlama parolası gibi hassas bilgiler kullanıcı/makine düzeyinde şifrelenir. Dosya, Properties/PublishProfiles/{PROFILE NAME}.pubxml.user kullanıcı adını ve parolayı almak için MSBuild tarafından gereken bilgileri içerir.

ASP.NET Core web uygulamasını yayımlamaya genel bakış için bkz ASP.NET Core'u barındırma ve dağıtma. ASP.NET Core web uygulamasını yayımlamak için gereken MSBuild görevleri ve hedefleri dotnet/websdk deposunda açık kaynaktır.

dotnet publish ve dotnet build:

  • Klasör, MSDeploy ve Kudu yayımlama profillerini kullanabilir. MSDeploy'da platformlar arası destek olmadığından, MSDeploy seçenekleri yalnızca Windows'ta desteklenir.
  • Herhangi bir platformdan Azure'da yayımlamak için Kudu API'lerini destekleyin. Visual Studio yayımlama, Kudu API'lerini destekler, ancak Azure'da platformlar arası yayımlama için WebSDK tarafından desteklenir.

DeployOnBuild, dotnet publish komutuna geçmeyin.

Daha fazla bilgi için bkz . Microsoft.NET.Sdk.Publish.

Klasör yayımlama örneği

adlı FolderProfilebir profille yayımlarken aşağıdaki komutlardan birini kullanın:

dotnet publish /p:Configuration=Release /p:PublishProfile=FolderProfile
dotnet build /p:DeployOnBuild=true /p:PublishProfile=FolderProfile
msbuild /p:DeployOnBuild=true /p:PublishProfile=FolderProfile

.NET CLI'nin dotnet build komutu, derleme ve yayımlama işlemini çalıştırmak için msbuild çağırır. dotnet build ve msbuild komutları, bir klasör profili geçirilirken eşdeğerdir. Doğrudan Windows'da çağrı msbuild yapılırken, MSBuild'in .NET Framework sürümü kullanılır. Klasör olmayan profilde dotnet build çağrılma:

  • msbuild çağırır ve bu, MSDeploy kullanır.
  • Hataya neden olur (Windows üzerinde çalışırken bile). Bir klasöre bağlı olmayan bir profille yayımlamak için msbuild öğesini doğrudan çağırın.

Aşağıdaki klasör yayımlama profili Visual Studio ile oluşturulmuştur ve bir ağ paylaşımında yayımlar:

<?xml version="1.0" encoding="utf-8"?>
<!--
https://go.microsoft.com/fwlink/?LinkID=208121.
-->
<Project>
  <PropertyGroup>
    <DeleteExistingFiles>false</DeleteExistingFiles>
    <ExcludeApp_Data>false</ExcludeApp_Data>
    <LaunchSiteAfterPublish>true</LaunchSiteAfterPublish>
    <LastUsedBuildConfiguration>Release</LastUsedBuildConfiguration>
    <LastUsedPlatform>Any CPU</LastUsedPlatform>
    <PublishProvider>FileSystem</PublishProvider>
    <PublishUrl>\\r8\Release\AdminWeb</PublishUrl>
    <WebPublishMethod>FileSystem</WebPublishMethod>
    <_TargetId>Folder</_TargetId>
  </PropertyGroup>
</Project>

Yukarıdaki örnekte:

  • <ExcludeApp_Data> özelliği bir XML şeması gereksinimini karşılamak için mevcuttur. <ExcludeApp_Data> Özelliğin, proje kökünde bir App_Data klasörü olsa bile yayımlama işlemi üzerinde hiçbir etkisi yoktur. App_Data klasörü, ASP.NET 4.x projelerinde olduğu gibi özel işlem almaz.
  • <LastUsedBuildConfiguration> özelliği Release olarak ayarlanmıştır. Visual Studio'dan yayımlama yaparken, <LastUsedBuildConfiguration> değeri, yayımlama işlemi başlatıldığında ayarlanır. <LastUsedBuildConfiguration> özeldir ve içeri aktarılan bir MSBuild dosyasında geçersiz kılınmamalıdır. Ancak bu özellik, aşağıdaki yaklaşımlardan biri kullanılarak komut satırından geçersiz kılınabilir.
    • .NET CLI'yi kullanma:

      dotnet publish /p:Configuration=Release /p:PublishProfile=FolderProfile
      
      dotnet build -c Release /p:DeployOnBuild=true /p:PublishProfile=FolderProfile
      
    • MSBuild Kullanma:

      msbuild /p:Configuration=Release /p:DeployOnBuild=true /p:PublishProfile=FolderProfile
      

Komut satırından MSDeploy uç noktasına yayımlama

Bkz. Microsoft.NET.Sdk.Publish.

Ortamı ayarlama

Uygulamanın ortamını ayarlamak için <EnvironmentName> özelliğini yayımlama profiline (.pubxml) veya proje dosyasına ekleyin.

<PropertyGroup>
  <EnvironmentName>Development</EnvironmentName>
</PropertyGroup>

Web.config dönüştürmeleri gerekiyorsa (örneğin, yapılandırmaya, profile veya ortama göre ortam değişkenlerini ayarlama), bkz Web.config dosyasını dönüştürme Transform web.config.

Dosyaları dışlama

ASP.NET Core web uygulamalarını yayımlarken aşağıdaki varlıklar dahil edilir:

  • Yapıtlar oluşturma
  • Aşağıdaki globbing desenleri ile eşleşen klasörler ve dosyalar:
    • **\*.config (örneğin, web.config)
    • **\*.json (örneğin, appsettings.json)
    • wwwroot\**

MSBuild, globbing desenlerini destekler. Örneğin, aşağıdaki <Content> öğe wwwroot\content klasöründeki ve alt klasörlerindeki metin (.txt) dosyalarının kopyalanmasını gizler:

<ItemGroup>
  <Content Update="wwwroot/content/**/*.txt" CopyToPublishDirectory="Never" />
</ItemGroup>

Önceki işaretleme bir yayımlama profiline veya .csproj dosyasına eklenebilir. Dosyaya .csproj eklendiğinde, kural projedeki tüm yayımlama profillerine eklenir.

Aşağıdaki <MsDeploySkipRules> öğe wwwroot\content klasöründeki tüm dosyaları dışlar:

<ItemGroup>
  <MsDeploySkipRules Include="CustomSkipFolder">
    <ObjectName>dirPath</ObjectName>
    <AbsolutePath>wwwroot\\content</AbsolutePath>
  </MsDeploySkipRules>
</ItemGroup>

<MsDeploySkipRules>dağıtım sitesinden atlama hedeflerini silmez. <Content> hedeflenen dosya ve klasörler dağıtım sitesinden silinir. Örneğin, dağıtılan bir web uygulamasının aşağıdaki dosyalara sahip olduğunu varsayalım:

  • Views/Home/About1.cshtml
  • Views/Home/About2.cshtml
  • Views/Home/About3.cshtml

Aşağıdaki <MsDeploySkipRules> öğeler eklenirse, bu dosyalar dağıtım sitesinde silinmez.

<ItemGroup>
  <MsDeploySkipRules Include="CustomSkipFile">
    <ObjectName>filePath</ObjectName>
    <AbsolutePath>Views\\Home\\About1.cshtml</AbsolutePath>
  </MsDeploySkipRules>

  <MsDeploySkipRules Include="CustomSkipFile">
    <ObjectName>filePath</ObjectName>
    <AbsolutePath>Views\\Home\\About2.cshtml</AbsolutePath>
  </MsDeploySkipRules>

  <MsDeploySkipRules Include="CustomSkipFile">
    <ObjectName>filePath</ObjectName>
    <AbsolutePath>Views\\Home\\About3.cshtml</AbsolutePath>
  </MsDeploySkipRules>
</ItemGroup>

Yukarıdaki <MsDeploySkipRules> öğeler, atlanan dosyaların dağıtılmasını engeller. Bu dosyalar dağıtıldıktan sonra silinmez.

Aşağıdaki <Content> öğe dağıtım sitesinde hedeflenen dosyaları siler:

<ItemGroup>
  <Content Update="Views/Home/About?.cshtml" CopyToPublishDirectory="Never" />
</ItemGroup>

Yukarıdaki <Content> öğeyle komut satırı dağıtımının kullanılması aşağıdaki çıkışın bir çeşitlemini verir:

MSDeployPublish:
  Starting Web deployment task from source: manifest(C:\Webs\Web1\obj\Release\{TARGET FRAMEWORK MONIKER}\PubTmp\Web1.SourceManifest.
  xml) to Destination: auto().
  Deleting file (Web11112\Views\Home\About1.cshtml).
  Deleting file (Web11112\Views\Home\About2.cshtml).
  Deleting file (Web11112\Views\Home\About3.cshtml).
  Updating file (Web11112\web.config).
  Updating file (Web11112\Web1.deps.json).
  Updating file (Web11112\Web1.dll).
  Updating file (Web11112\Web1.pdb).
  Updating file (Web11112\Web1.runtimeconfig.json).
  Successfully executed Web deployment task.
  Publish Succeeded.
Done Building Project "C:\Webs\Web1\Web1.csproj" (default targets).

Dosyaları dahil et

Aşağıdaki bölümlerde, yayımlama zamanında dosya eklemeye yönelik farklı yaklaşımlar özetlenmiştir. Genel dosya ekleme bölümü, Web SDK'sında DotNetPublishFilesbir yayımlama hedefleri dosyası tarafından sağlanan öğesini kullanır. Seçmeli dosya ekleme bölümü, ResolvedFileToPublish bir yayımlama hedefleri dosyası tarafından sağlanan öğesini kullanır. Web SDK'sı .NET SDK'ya bağlı olduğundan, bir ASP.NET Core projesinde her iki öğe de kullanılabilir.

Genel dosya ekleme

Aşağıdaki örneğin <ItemGroup> öğesi, proje dizininin dışında bulunan bir klasörü yayımlanan sitenin bir klasörüne kopyalamayı gösterir. Aşağıdaki işaretlemelere <ItemGroup> eklenen tüm dosyalar varsayılan olarak eklenir.

<ItemGroup>
  <_CustomFiles Include="$(MSBuildProjectDirectory)/../images/**/*" />
  <DotNetPublishFiles Include="@(_CustomFiles)">
    <DestinationRelativePath>wwwroot/images/%(RecursiveDir)%(Filename)%(Extension)</DestinationRelativePath>
  </DotNetPublishFiles>
</ItemGroup>

Yukarıdaki işaretleme:

  • Dosyaya .csproj veya yayımlama profiline eklenebilir. Dosyaya .csproj eklenirse, projedeki her yayımlama profiline eklenir.
  • Bir _CustomFiles öğesini, Include özniteliğinin globbing deseni ile eşleşen dosyaları depolamak için bildirir. Örüntüde referans verilen images klasörü, proje dizininin dışında yer almaktadır. Ayırılmış özellik, adlandırılmış $(MSBuildProjectDirectory), proje dosyasının mutlak yoluna çözümler.
  • Öğeye DotNetPublishFiles dosyaların listesini sağlar. Varsayılan olarak, öğenin <DestinationRelativePath> öğesi boş olur. Varsayılan değer işaretlemede geçersiz kılınmış ve iyi bilinen öğe meta verileri gibi öğeler kullanır. İç metin, yayımlanan sitenin wwwroot/images klasörünü temsil eder.

Seçmeli dosya ekleme

Aşağıdaki örnekte vurgulanan işaretleme şunu gösterir:

  • Projenin dışında bulunan bir dosyayı yayımlanan sitenin wwwroot klasörüne kopyalama. ReadMe2.md dosya adı korunur.
  • wwwroot\Content klasörü hariç.
  • Views\Home\About2.cshtml hariç.
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" 
         xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
  <PropertyGroup>
    <WebPublishMethod>FileSystem</WebPublishMethod>
    <PublishProvider>FileSystem</PublishProvider>
    <LastUsedBuildConfiguration>Release</LastUsedBuildConfiguration>
    <LastUsedPlatform>Any CPU</LastUsedPlatform>
    <SiteUrlToLaunchAfterPublish />
    <LaunchSiteAfterPublish>True</LaunchSiteAfterPublish>
    <ExcludeApp_Data>False</ExcludeApp_Data>
    <PublishFramework />
    <ProjectGuid>
      <GUID Here=""></GUID>
    </ProjectGuid>
    <publishUrl>bin\Release\PublishOutput</publishUrl>
    <DeleteExistingFiles>False</DeleteExistingFiles>
  </PropertyGroup>
  <ItemGroup>
    <ResolvedFileToPublish Include="..\ReadMe2.md">
      <RelativePath>wwwroot\ReadMe2.md</RelativePath>
    </ResolvedFileToPublish>

    <Content Update="wwwroot\Content\**\*" CopyToPublishDirectory="Never" />
    <Content Update="Views\Home\About2.cshtml" CopyToPublishDirectory="Never" />
  </ItemGroup>
</Project>

Önceki örnek, ResolvedFileToPublish öğesini kullanır; bu öğenin varsayılan davranışı, Include özniteliğinde sağlanan dosyaları her zaman yayımlanan siteye kopyalamaktır. Varsayılan davranışı, iç metni Never veya PreserveNewest olan bir <CopyToPublishDirectory> alt öğe ekleyerek geçersiz kılın. Örneğin:

<ResolvedFileToPublish Include="..\ReadMe2.md">
  <RelativePath>wwwroot\ReadMe2.md</RelativePath>
  <CopyToPublishDirectory>PreserveNewest</CopyToPublishDirectory>
</ResolvedFileToPublish>

Daha fazla dağıtım örneği için bkz. Web SDK README dosyası.

Yayımlamadan önce veya sonra hedef çalıştırma

Yerleşik BeforePublish ve AfterPublish hedefler, yayımlama hedefi öncesinde veya sonrasında bir hedef yürütür. Konsol iletilerini yayımlamadan önce ve sonra günlüğe kaydetmek için yayımlama profiline aşağıdaki öğeleri ekleyin:

<?xml version="1.0" encoding="utf-8"?>
<!--
This file is used by the publish/package process of your Web project. You can customize the behavior of this process
by editing this MSBuild file. In order to learn more about this please visit https://go.microsoft.com/fwlink/?LinkID=208121. 
-->
<Project>
  <PropertyGroup>
    <WebPublishMethod>MSDeploy</WebPublishMethod>
    <ResourceId>/subscriptions/SomeGuid/resourcegroups/TP_RG/providers/Microsoft.Web/sites/TP22</ResourceId>
    <ResourceGroup>TP_RG</ResourceGroup>
    <PublishProvider>AzureWebSite</PublishProvider>
    <LastUsedBuildConfiguration>Release</LastUsedBuildConfiguration>
    <LastUsedPlatform>Any CPU</LastUsedPlatform>
    <SiteUrlToLaunchAfterPublish>https://tp22.azurewebsites.net</SiteUrlToLaunchAfterPublish>
    <LaunchSiteAfterPublish>true</LaunchSiteAfterPublish>
    <ExcludeApp_Data>false</ExcludeApp_Data>
    <ProjectGuid>GuidHere</ProjectGuid>
    <MSDeployServiceURL>something.scm.azurewebsites.net:443</MSDeployServiceURL>
    <DeployIisAppPath>myDeploysIISpath</DeployIisAppPath>
    <RemoteSitePhysicalPath />
    <SkipExtraFilesOnServer>true</SkipExtraFilesOnServer>
    <MSDeployPublishMethod>WMSVC</MSDeployPublishMethod>
    <EnableMSDeployBackup>true</EnableMSDeployBackup>
    <EnableMsDeployAppOffline>true</EnableMsDeployAppOffline>
    <UserName />
    <_SavePWD>false</_SavePWD>
    <_DestinationType>AzureWebSite</_DestinationType>
    <InstallAspNetCoreSiteExtension>false</InstallAspNetCoreSiteExtension>
  </PropertyGroup>
    <Target Name="CustomActionsBeforePublish" BeforeTargets="BeforePublish">
        <Message Text="Inside BeforePublish" Importance="high" />
    </Target>
    <Target Name="CustomActionsAfterPublish" AfterTargets="AfterPublish">
        <Message Text="Inside AfterPublish" Importance="high" />
    </Target>
</Project>

Güvenilmeyen sertifika kullanarak bir sunucuda yayımlama

değerini içeren <AllowUntrustedCertificate>True özelliğini yayımlama profiline ekleyin:

<PropertyGroup>
  <AllowUntrustedCertificate>True</AllowUntrustedCertificate>
</PropertyGroup>

Kudu hizmeti

Azure Uygulaması Hizmeti web uygulaması dağıtımındaki dosyaları görüntülemek için Kudu hizmetini kullanın. Web uygulaması adına scm belirtecini ekleyin. Örneğin:

URL Result
http://mysite.azurewebsites.net/ Web Uygulaması
http://mysite.scm.azurewebsites.net/ Kudu hizmeti

Dosyaları görüntülemek, düzenlemek, silmek veya eklemek için Hata Ayıklama Konsolu menü öğesini seçin.

Ek kaynaklar