Profily publikování sady Visual Studio (.pubxml) pro nasazení aplikace ASP.NET Core
Poznámka:
Toto není nejnovější verze tohoto článku. Aktuální verzi najdete ve verzi .NET 8 tohoto článku.
Upozorňující
Tato verze ASP.NET Core se už nepodporuje. Další informace najdete v tématu .NET a .NET Core Zásady podpory. Aktuální verzi najdete ve verzi .NET 8 tohoto článku.
Důležité
Tyto informace se týkají předběžného vydání produktu, který může být podstatně změněn před komerčním vydáním. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Aktuální verzi najdete ve verzi .NET 8 tohoto článku.
Podle Sayed Ibrahim Hashimi a Rick Anderson
Tento dokument se zaměřuje na použití sady Visual Studio 2019 nebo novější k vytváření a používání profilů publikování. Profily publikování vytvořené pomocí sady Visual Studio lze použít s nástrojem MSBuild a sadou Visual Studio. Pokyny k publikování do Azure najdete v tématu Publikování aplikace ASP.NET Core do Azure pomocí sady Visual Studio.
Příkaz dotnet new mvc
vytvoří soubor projektu obsahující následující element Projectu> na kořenové úrovni<:
<Project Sdk="Microsoft.NET.Sdk.Web">
<!-- omitted for brevity -->
</Project>
Atribut předchozího <Project>
prvku Sdk
importuje vlastnosti a cíle MSBuild z $(MSBuildSDKsPath)\Microsoft.NET.Sdk.Web\Sdk\Sdk.props a $(MSBuildSDKsPath)\Microsoft.NET.Sdk.Web\Sdk\Sdk.targets. Výchozím umístěním pro $(MSBuildSDKsPath)
(se sadou Visual Studio 2019 Enterprise) je složka %programfiles(x86)%\Microsoft Visual Studio\2019\Enterprise\MSBuild\Sdks .
Microsoft.NET.Sdk.Web
(Webová sada SDK) závisí na jiných sadách SDK, včetně Microsoft.NET.Sdk
sady SDK (.NET Core SDK) a Microsoft.NET.Sdk.Razor
(Razor SDK). Importují se vlastnosti a cíle nástroje MSBuild přidružené ke každé závislé sadě SDK. Cíle publikování importují odpovídající sadu cílů na základě použité metody publikování.
Když MSBuild nebo Visual Studio načte projekt, dojde k následujícím akcím vysoké úrovně:
- Sestavení projektu
- Výpočetní soubory k publikování
- Publikování souborů do cíle
Položky výpočetního projektu
Při načtení projektu se počítají položky projektu MSBuild (soubory). Typ položky určuje způsob zpracování souboru. Ve výchozím nastavení .cs
jsou soubory zahrnuté do Compile
seznamu položek. Soubory v Compile
seznamu položek se kompilují.
Seznam Content
položek obsahuje soubory publikované kromě výstupů sestavení. Ve výchozím nastavení jsou soubory odpovídající vzorům wwwroot\**
**\*.config
a **\*.json
jsou zahrnuty do Content
seznamu položek. Vzor globbingu wwwroot\**
například odpovídá všem souborům ve složce wwwroot a jejích podsložkách.
Webová sada SDK naimportuje Razor sadu SDK. V důsledku toho jsou soubory odpovídající vzorům **\*.cshtml
a **\*.razor
také zahrnuty do Content
seznamu položek.
Webová sada SDK naimportuje Razor sadu SDK. V důsledku toho jsou soubory odpovídající **\*.cshtml
vzoru zahrnuty také do Content
seznamu položek.
Pokud chcete do seznamu publikování explicitně přidat soubor, přidejte ho .csproj
přímo do souboru, jak je znázorněno v části Zahrnout soubory .
Při výběru tlačítka Publikovat v sadě Visual Studio nebo při publikování z příkazového řádku:
- Vlastnosti a položky se počítají (soubory potřebné k sestavení).
- Pouze Visual Studio: Obnoví se balíčky NuGet. (Obnovení musí být explicitní uživatelem v rozhraní příkazového řádku.)
- Projekt se sestaví.
- Položky publikování se počítají (soubory potřebné k publikování).
- Projekt se publikuje (vypočítané soubory se zkopírují do cíle publikování).
Když ASP.NET základní odkazy Microsoft.NET.Sdk.Web
na projekt v souboru projektu, app_offline.htm
soubor se umístí do kořenového adresáře webové aplikace. Pokud existuje tento soubor, modul ASP.NET Core aplikaci řádně vypne a během nasazování zobrazuje soubor app_offline.htm
. Další informace najdete v referenčních informacích ke konfiguraci modulu ASP.NET Core.
Základní publikování příkazového řádku
Publikování na příkazovém řádku funguje na všech platformách podporovaných platformou .NET Core a nevyžaduje Visual Studio. V následujících příkladech se příkaz dotnet publish v .NET CLI spustí z adresáře projektu (který obsahuje .csproj
soubor). Pokud složka projektu není aktuálním pracovním adresářem, explicitně předejte cestu k souboru projektu. Příklad:
dotnet publish C:\Webs\Web1
Spuštěním následujících příkazů vytvořte a publikujte webovou aplikaci:
dotnet new mvc
dotnet publish
Příkaz dotnet publish
vytvoří variantu následujícího výstupu:
C:\Webs\Web1>dotnet publish
Microsoft (R) Build Engine version {VERSION} for .NET Core
Copyright (C) Microsoft Corporation. All rights reserved.
Restore completed in 36.81 ms for C:\Webs\Web1\Web1.csproj.
Web1 -> C:\Webs\Web1\bin\Debug\{TARGET FRAMEWORK MONIKER}\Web1.dll
Web1 -> C:\Webs\Web1\bin\Debug\{TARGET FRAMEWORK MONIKER}\Web1.Views.dll
Web1 -> C:\Webs\Web1\bin\Debug\{TARGET FRAMEWORK MONIKER}\publish\
Výchozí formát složky publikování je bin\Debug\{TARGET FRAMEWORK MONIKER}\publish\. Například bin\Debug\netcoreapp2.2\publish\.
Následující příkaz určuje Release
sestavení a adresář publikování:
dotnet publish -c Release -o C:\MyWebs\test
Příkaz dotnet publish
volá nástroj MSBuild, který vyvolá Publish
cíl. Všechny předané dotnet publish
parametry jsou předány nástroji MSBuild. Parametry -c
a -o
parametry se mapuje na vlastnosti a OutputPath
vlastnosti nástroje MSBuildConfiguration
.
Vlastnosti nástroje MSBuild lze předat pomocí některého z následujících formátů:
-p:<NAME>=<VALUE>
/p:<NAME>=<VALUE>
Například následující příkaz publikuje Release
sestavení do sdílené síťové složky. Sdílená složka sítě se zadává s lomítky (r8/) a funguje na všech podporovaných platformách .NET Core.
dotnet publish -c Release /p:PublishDir=//r8/release/AdminWeb
Ověřte, že publikovaná aplikace pro nasazení není spuštěná. Soubory ve složce publikování se při spuštění aplikace zamknou. Nasazení se nedá provést, protože uzamčené soubory nelze kopírovat.
Profily publikování
V této části se k vytvoření profilu publikování používá Visual Studio 2019 nebo novější. Po vytvoření profilu je k dispozici publikování ze sady Visual Studio nebo příkazového řádku. Profily publikování můžou zjednodušit proces publikování a může existovat libovolný počet profilů.
V sadě Visual Studio vytvořte profil publikování tak, že zvolíte jednu z následujících cest:
- V Průzkumníku řešení klikněte pravým tlačítkem na projekt a vyberte Publikovat.
- V nabídce Sestavení vyberte Publikovat {PROJECT NAME}.
Zobrazí se karta Publikovat na stránce možností aplikace. Pokud projekt nemá profil publikování, zobrazí se cílová stránka Vybrat publikování . Zobrazí se výzva k výběru některého z následujících cílů publikování:
- Azure App Service
- Aplikace Azure Service v Linuxu
- Azure Virtual Machines
- Složka
- SLUŽBA IIS, FTP, nasazení webu (pro libovolný webový server)
- Importovat profil
Pokud chcete určit nejvhodnější cíl publikování, podívejte se, jaké možnosti publikování jsou pro mě vhodné.
Pokud je vybrán cíl publikování složky, zadejte cestu ke složce pro uložení publikovaných prostředků. Výchozí cesta ke složce je bin\{PROJECT CONFIGURATION}\{TARGET FRAMEWORK MONIKER}\publish\. Například bin\Release\netcoreapp2.2\publish\. Dokončete výběr tlačítka Vytvořit profil.
Po vytvoření profilu publikování se obsah karty Publikovat změní. Nově vytvořený profil se zobrazí v rozevíracím seznamu. Pod rozevíracím seznamem vyberte Vytvořit nový profil a vytvořte další nový profil.
Nástroj pro publikování sady Visual Studio vytvoří soubor Properties/PublishProfiles/{PROFILE NAME}.pubxml MSBuild popisující profil publikování. Soubor .pubxml :
- Obsahuje nastavení konfigurace publikování a používá se procesem publikování.
- Je možné upravit tak, aby se přizpůsobil proces sestavení a publikování.
Při publikování do cíle Azure obsahuje soubor .pubxml identifikátor vašeho předplatného Azure. S tímto cílovým typem se nedoporučuje přidávání tohoto souboru do správy zdrojového kódu. Při publikování do cíle mimo Azure je bezpečné vrátit se změnami soubor .pubxml .
Citlivé informace (například heslo k publikování) se šifrují na úrovni uživatele nebo počítače. Uloží se do souboru Properties/PublishProfiles/{PROFILE NAME}.pubxml.user . Vzhledem k tomu, že tento soubor může ukládat citlivé informace, neměl by být vrácen se změnami do správy zdrojového kódu.
Přehled publikování webové aplikace ASP.NET Core najdete v tématu Hostování a nasazení ASP.NET Core. Úlohy a cíle NÁSTROJE MSBuild potřebné k publikování webové aplikace ASP.NET Core jsou opensourcové v úložišti dotnet/websdk.
Následující příkazy můžou používat profily publikování složek, MSDeploy a Kudu . Vzhledem k tomu, že msDeploy nemá podporu pro různé platformy, jsou následující možnosti MSDeploy podporovány pouze ve Windows.
Složka (funguje pro různé platformy):
dotnet publish WebApplication.csproj /p:PublishProfile=<FolderProfileName>
dotnet build WebApplication.csproj /p:DeployOnBuild=true /p:PublishProfile=<FolderProfileName>
MSDeploy:
dotnet publish WebApplication.csproj /p:PublishProfile=<MsDeployProfileName> /p:Password=<DeploymentPassword>
dotnet build WebApplication.csproj /p:DeployOnBuild=true /p:PublishProfile=<MsDeployProfileName> /p:Password=<DeploymentPassword>
Balíček MSDeploy:
dotnet publish WebApplication.csproj /p:PublishProfile=<MsDeployPackageProfileName>
dotnet build WebApplication.csproj /p:DeployOnBuild=true /p:PublishProfile=<MsDeployPackageProfileName>
V předchozích příkladech:
dotnet publish
adotnet build
podporují rozhraní Kudu API pro publikování do Azure z libovolné platformy. Publikování sady Visual Studio podporuje rozhraní Kudu API, ale podporuje ji WebSDK pro publikování do Azure pro různé platformy.- Nepředávejte
DeployOnBuild
příkazdotnet publish
.
Další informace naleznete v tématu Microsoft.NET.Sdk.Publish.
Přidejte profil publikování do složky Properties/PublishProfiles projektu s následujícím obsahem:
<Project>
<PropertyGroup>
<PublishProtocol>Kudu</PublishProtocol>
<PublishSiteName>nodewebapp</PublishSiteName>
<UserName>username</UserName>
<Password>password</Password>
</PropertyGroup>
</Project>
Příklad publikování složky
Při publikování s profilem s názvem FolderProfile použijte některý z následujících příkazů:
dotnet publish /p:Configuration=Release /p:PublishProfile=FolderProfile
dotnet build /p:DeployOnBuild=true /p:PublishProfile=FolderProfile
msbuild /p:DeployOnBuild=true /p:PublishProfile=FolderProfile
Volání příkazu msbuild
dotnet buildu rozhraní příkazového řádku .NET pro spuštění procesu sestavení a publikování Příkazy dotnet build
a msbuild
příkazy jsou při předávání profilu složky ekvivalentní. Při volání msbuild
přímo ve Windows se používá verze rozhraní .NET Framework nástroje MSBuild. Volání dotnet build
na profil, který není složkou:
msbuild
Vyvolá , který používá MSDeploy.- Výsledkem je selhání (i když běží ve Windows). Pokud chcete publikovat s profilem, který není ve složce, zavolejte
msbuild
přímo.
V sadě Visual Studio byl vytvořen následující profil publikování složky a publikuje se do sdílené síťové složky:
<?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.
-->
<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>netcoreapp1.1</PublishFramework>
<ProjectGuid>c30c453c-312e-40c4-aec9-394a145dee0b</ProjectGuid>
<publishUrl>\\r8\Release\AdminWeb</publishUrl>
<DeleteExistingFiles>False</DeleteExistingFiles>
</PropertyGroup>
</Project>
V předchozím příkladu:
- Vlastnost
<ExcludeApp_Data>
je přítomna pouze pro splnění požadavku schématu XML. Vlastnost<ExcludeApp_Data>
nemá žádný vliv na proces publikování, i když je v kořenovém adresáři projektu složka App_Data . Složka App_Data neobdrží zvláštní zacházení, protože se používá v projektech ASP.NET 4.x. - Vlastnost
<LastUsedBuildConfiguration>
je nastavena na hodnotuRelease
. Při publikování ze sady Visual Studio je hodnota<LastUsedBuildConfiguration>
nastavena pomocí hodnoty při spuštění procesu publikování.<LastUsedBuildConfiguration>
je speciální a neměl by být přepsán v importovaném souboru MSBuild. Tuto vlastnost však lze přepsat z příkazového řádku pomocí některého z následujících přístupů.Pomocí rozhraní příkazového řádku .NET:
dotnet publish /p:Configuration=Release /p:PublishProfile=FolderProfile
dotnet build -c Release /p:DeployOnBuild=true /p:PublishProfile=FolderProfile
Pomocí nástroje MSBuild:
msbuild /p:Configuration=Release /p:DeployOnBuild=true /p:PublishProfile=FolderProfile
Publikování do koncového bodu MSDeploy z příkazového řádku
Následující příklad používá webovou aplikaci ASP.NET Core vytvořenou sadou Visual Studio s názvem AzureWebApp. Do sady Visual Studio se přidá profil publikování Aplikace Azure. Další informace o tom, jak vytvořit profil, najdete v části Publikovat profily .
Pokud chcete nasadit aplikaci pomocí profilu publikování, spusťte msbuild
příkaz z příkazového řádku pro vývojáře sady Visual Studio. Příkazový řádek je k dispozici ve složce sady Visual Studio nabídky Start na hlavním panelu Windows. Pro snadnější přístup můžete přidat příkazový řádek do nabídky Nástroje v sadě Visual Studio. Další informace naleznete v tématu Developer Command Prompt for Visual Studio.
Nástroj MSBuild používá následující syntaxi příkazu:
msbuild {PATH}
/p:DeployOnBuild=true
/p:PublishProfile={PROFILE}
/p:Username={USERNAME}
/p:Password={PASSWORD}
{PATH}
: Cesta k souboru projektu aplikace.{PROFILE}
: Název profilu publikování.{USERNAME}
: Uživatelské jméno MSDeploy. Najdete ho{USERNAME}
v profilu publikování.{PASSWORD}
: Heslo MSDeploy. Získejte položku{PASSWORD}
z {PROFILE}. Soubor PublishSettings Stáhněte soubor . Soubor PublishSettings z těchto:- Průzkumník řešení: Vyberte Zobrazit>Průzkumníka cloudu. Spojte se s předplatným Azure. Otevřete App Services. Klikněte pravým tlačítkem na aplikaci. Vyberte Stáhnout profil publikování.
- Azure Portal: Na panelu Přehled webové aplikace vyberte Získat profil publikování.
Následující příklad používá profil publikování s názvem AzureWebApp – Nasazení webu:
msbuild "AzureWebApp.csproj"
/p:DeployOnBuild=true
/p:PublishProfile="AzureWebApp - Web Deploy"
/p:Username="$AzureWebApp"
/p:Password=".........."
Profil publikování lze také použít s příkazem dotnet msbuild rozhraní příkazového řádku .NET z příkazového prostředí Windows:
dotnet msbuild "AzureWebApp.csproj"
/p:DeployOnBuild=true
/p:PublishProfile="AzureWebApp - Web Deploy"
/p:Username="$AzureWebApp"
/p:Password=".........."
Důležité
Příkaz dotnet msbuild
je multiplatformní příkaz a může kompilovat aplikace ASP.NET Core v systémech macOS a Linux. Nástroj MSBuild v systému macOS a Linux ale nedokáže nasadit aplikaci do Azure ani do jiných koncových bodů MSDeploy.
Nastavení prostředí
<EnvironmentName>
Do profilu publikování (.pubxml) nebo souboru projektu zahrňte vlastnost, která nastaví prostředí aplikace:
<PropertyGroup>
<EnvironmentName>Development</EnvironmentName>
</PropertyGroup>
Pokud potřebujete transformace web.config (například nastavení proměnných prostředí na základě konfigurace, profilu nebo prostředí), přečtěte si téma Transformace web.config.
Vyloučit soubory
Při publikování webových aplikací ASP.NET Core jsou zahrnuty následující prostředky:
- Artefakty sestavení
- Složky a soubory odpovídající následujícím vzorům globbingu:
**\*.config
(například web.config)**\*.json
(napříkladappsettings.json
)wwwroot\**
NÁSTROJ MSBuild podporuje vzory globbingu. Následující <Content>
prvek například potlačí kopírování textových souborů (.txt) ve složce wwwroot\content a jejích podsložkách:
<ItemGroup>
<Content Update="wwwroot/content/**/*.txt" CopyToPublishDirectory="Never" />
</ItemGroup>
Předchozí kód lze přidat do profilu publikování nebo souboru .csproj
. Po přidání do .csproj
souboru se pravidlo přidá do všech profilů publikování v projektu.
Následující <MsDeploySkipRules>
prvek vylučuje všechny soubory ze složky wwwroot\content :
<ItemGroup>
<MsDeploySkipRules Include="CustomSkipFolder">
<ObjectName>dirPath</ObjectName>
<AbsolutePath>wwwroot\\content</AbsolutePath>
</MsDeploySkipRules>
</ItemGroup>
<MsDeploySkipRules>
neodstraní cíle přeskočení z lokality nasazení. <Content>
cílové soubory a složky se odstraní z lokality nasazení. Předpokládejme například, že nasazená webová aplikace měla následující soubory:
Views/Home/About1.cshtml
Views/Home/About2.cshtml
Views/Home/About3.cshtml
Pokud se přidají následující <MsDeploySkipRules>
prvky, tyto soubory by se na webu nasazení neodstranily.
<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>
Předchozí <MsDeploySkipRules>
prvky brání nasazení přeskočených souborů. Po nasazení se tyto soubory neodstraní.
Následující <Content>
prvek odstraní cílové soubory v lokalitě nasazení:
<ItemGroup>
<Content Update="Views/Home/About?.cshtml" CopyToPublishDirectory="Never" />
</ItemGroup>
Použití nasazení příkazového řádku s předchozím <Content>
prvkem přináší variaci následujícího výstupu:
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).
Vložené soubory
Následující části popisují různé přístupy k zahrnutí souborů v době publikování. Oddíl Obecné zahrnutí souboru používá DotNetPublishFiles
položku, kterou poskytuje soubor cíle publikování ve webové sadě SDK. Oddíl Selektivně zahrnutí souboru používá ResolvedFileToPublish
položku, která je poskytována souborem cíle publikování v sadě .NET Core SDK. Vzhledem k tomu, že webová sada SDK závisí na sadě .NET Core SDK, lze některou položku použít v projektu ASP.NET Core.
Obecné zahrnutí souborů
Následující příklad element <ItemGroup>
ukazuje kopírování složky umístěné mimo adresář projektu do složky publikovaného webu. Všechny soubory přidané do následujících značek <ItemGroup>
jsou ve výchozím nastavení zahrnuty.
<ItemGroup>
<_CustomFiles Include="$(MSBuildProjectDirectory)/../images/**/*" />
<DotNetPublishFiles Include="@(_CustomFiles)">
<DestinationRelativePath>wwwroot/images/%(RecursiveDir)%(Filename)%(Extension)</DestinationRelativePath>
</DotNetPublishFiles>
</ItemGroup>
Předchozí kód:
- Lze přidat do
.csproj
souboru nebo do profilu publikování. Pokud se přidá do.csproj
souboru, zahrne se do každého profilu publikování v projektu. - Deklaruje
_CustomFiles
položku pro ukládání souborů odpovídajících vzoru globbinguInclude
atributu. Složka obrázků odkazovaná v vzoru se nachází mimo adresář projektu. Rezervovaná vlastnost s názvem$(MSBuildProjectDirectory)
, která se překládá na absolutní cestu k souboru projektu. - Poskytuje seznam souborů pro danou
DotNetPublishFiles
položku. Ve výchozím nastavení je prvek položky<DestinationRelativePath>
prázdný. Výchozí hodnota se přepíše v kódu a používá dobře známá metadata položek, jako%(RecursiveDir)
je . Vnitřní text představuje složku wwwroot/images publikovaného webu.
Selektivní zahrnutí souborů
Zvýrazněný kód v následujícím příkladu ukazuje:
- Kopírování souboru umístěného mimo projekt do složky wwwroot publikovaného webu. Název souboru ReadMe2.md je zachován.
- Vyjma složky wwwroot\Content .
- Vyloučení zobrazení\Home\About2.cshtml.
<?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>afa9f185-7ce0-4935-9da1-ab676229d68a</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>
Předchozí příklad používá ResolvedFileToPublish
položku, jejíž výchozí chování je vždy kopírovat soubory zadané v Include
atributu na publikovaný web. Přepsat výchozí chování zahrnutím podřízeného <CopyToPublishDirectory>
prvku s vnitřním textem nebo Never
PreserveNewest
. Příklad:
<ResolvedFileToPublish Include="..\ReadMe2.md">
<RelativePath>wwwroot\ReadMe2.md</RelativePath>
<CopyToPublishDirectory>PreserveNewest</CopyToPublishDirectory>
</ResolvedFileToPublish>
Další ukázky nasazení najdete v souboru README webové sady SDK.
Spuštění cíle před publikováním nebo po publikování
Předdefinované BeforePublish
a AfterPublish
cílové cíle provádějí cíl před nebo po cíli publikování. Do profilu publikování přidejte následující prvky pro protokolování zpráv konzoly před publikováním i po publikování:
<Target Name="CustomActionsBeforePublish" BeforeTargets="BeforePublish">
<Message Text="Inside BeforePublish" Importance="high" />
</Target>
<Target Name="CustomActionsAfterPublish" AfterTargets="AfterPublish">
<Message Text="Inside AfterPublish" Importance="high" />
</Target>
Publikování na server pomocí nedůvěryhodného certifikátu
<AllowUntrustedCertificate>
Přidejte vlastnost s hodnotou True
do profilu publikování:
<PropertyGroup>
<AllowUntrustedCertificate>True</AllowUntrustedCertificate>
</PropertyGroup>
Služba Kudu
Pokud chcete zobrazit soubory v nasazení webové aplikace služby Aplikace Azure, použijte službu Kudu. scm
Připojte token k názvu webové aplikace. Příklad:
Adresa URL | Výsledek |
---|---|
http://mysite.azurewebsites.net/ |
Webová aplikace |
http://mysite.scm.azurewebsites.net/ |
Služba Kudu |
Vyberte položku nabídky Konzola ladění a zobrazte, upravte, odstraňte nebo přidejte soubory.
Další materiály
- Nasazení webu (MSDeploy) zjednodušuje nasazení webových aplikací a webů na servery IIS.
- Úložiště GitHub webové sady SDK: Problémy se soubory a funkce žádostí o nasazení
- Transformace web.config