Vyloučení souborů a složek z nasazení
Toto téma popisuje, jak můžete vyloučit soubory a složky z balíčku pro nasazení webu při sestavování a balení projektu webové aplikace.
Toto téma je součástí série kurzů založených na požadavcích na podnikové nasazení fiktivní společnosti s názvem Fabrikam, Inc. Tato série kurzů používá ukázkové řešení – řešení Contact Manager – k reprezentaci webové aplikace s realistickou úrovní složitosti, včetně aplikace ASP.NET MVC 3, služby WCF (Windows Communication Foundation) a databázového projektu.
Metoda nasazení, která je jádrem těchto kurzů, je založená na přístupu založeném na rozdělených souborech projektu popsaném v tématu Vysvětlení souboru projektu, ve kterém je proces sestavení řízen dvěma soubory projektu – jedním obsahujícím pokyny k sestavení, které platí pro každé cílové prostředí, a jedním obsahujícím nastavení sestavení a nasazení specifické pro prostředí. V době sestavení se soubor projektu specifického pro prostředí sloučí do souboru projektu nezávislého na prostředí, aby se vytvořila úplná sada pokynů k sestavení.
Přehled
Při vytváření projektu webové aplikace v sadě Visual Studio 2010 umožňuje kanál publikování na webu (WPP) rozšířit tento proces sestavení zabalením zkompilované webové aplikace do nasaditelného webového balíčku. Potom můžete použít Nástroj pro nasazení webu Internetové informační služby (IIS) (Nasazení webu) k nasazení tohoto webového balíčku na vzdálený webový server služby IIS nebo ho importovat ručně prostřednictvím Správce služby IIS. Tento proces balení je vysvětlený v tématu Sestavování a balení projektů webových aplikací.
Jak tedy můžete řídit, co bude součástí webového balíčku? Nastavení projektu v sadě Visual Studio prostřednictvím základního souboru projektu poskytují dostatečnou kontrolu pro mnoho scénářů. V některých případech ale můžete chtít přizpůsobit obsah webového balíčku konkrétním cílovým prostředím. Můžete například chtít zahrnout složku pro soubory protokolu, když nasazujete aplikaci do testovacího prostředí, ale složku vyloučit při nasazení aplikace do přípravného nebo produkčního prostředí. V tomto tématu se dozvíte, jak to udělat.
Co se ve výchozím nastavení zahrne?
Když konfigurujete vlastnosti projektu webové aplikace v sadě Visual Studio, v seznamu Položky k nasazení na webové stránce Zabalit/publikovat můžete zadat, co chcete zahrnout do balíčku pro nasazení webu. Ve výchozím nastavení je tato možnost nastavená na Pouze soubory potřebné ke spuštění této aplikace.
Pokud zvolíte Možnost Pouze soubory potřebné ke spuštění této aplikace, pokusí se WPP určit, které soubory mají být přidány do webového balíčku. Sem patří:
- Všechny výstupy sestavení pro projekt
- Všechny soubory označené akcí sestavení Obsah.
Poznámka
Logika, která určuje, které soubory se mají zahrnout, je obsažena v tomto souboru:
%PROGRAMFILES%\MSBuild\Microsoft\VisualStudio\v10.0\Web\ Microsoft.Web.Publishing.OnlyFilesToRunTheApp.targets
Vyloučení konkrétních souborů a složek
V některých případech budete potřebovat podrobnější kontrolu nad tím, které soubory a složky se nasadí. Pokud předem víte, které soubory chcete vyloučit, a vyloučení platí pro všechna cílová prostředí, můžete u každého souboru jednoduše nastavit Akci sestavení na Hodnotu Žádný.
Vyloučení konkrétních souborů z nasazení
- V okně Průzkumník řešení klikněte pravým tlačítkem na soubor a potom klikněte na Vlastnosti.
- V okně Vlastnosti vyberte na řádku Akce sestavenímožnost Žádná.
Tento přístup ale není vždy vhodný. Můžete například chtít změnit, které soubory a složky jsou zahrnuty, podle vašeho cílového prostředí a z prostředí mimo sadu Visual Studio. Například v ukázkovém řešení Správce kontaktů se podívejte na obsah projektu ContactManager.Mvc:
- Složka Internal obsahuje některé skripty SQL, které vývojář používá k vytváření, odstraňování a naplnění místních databází pro účely vývoje. Nic z této složky by se nemělo nasazovat do přípravného nebo produkčního prostředí.
- Složka Scripts obsahuje několik souborů JavaScriptu. Mnoho z těchto souborů je součástí čistě pro podporu ladění nebo poskytování Technologie IntelliSense v sadě Visual Studio. Některé z těchto souborů by se neměly nasazovat do přípravného nebo produkčního prostředí. Můžete je ale chtít nasadit do testovacího prostředí pro vývojáře, abyste usnadnili řešení potíží.
I když můžete manipulovat se soubory projektu a vyloučit konkrétní soubory a složky, existuje jednodušší způsob. WPP obsahuje mechanismus pro vyloučení souborů a složek vytvářením seznamů položek s názvem ExcludeFromPackageFolders a ExcludeFromPackageFiles. Tento mechanismus můžete rozšířit přidáním vlastních položek do těchto seznamů. K tomu je potřeba provést tyto základní kroky:
Vytvořte vlastní soubor projektu s názvem [název_projektu].wpp.targets ve stejné složce jako soubor projektu.
Poznámka
Soubor .wpp.targets musí být ve stejné složce jako soubor projektu webové aplikace – například ContactManager.Mvc.csproj – a ne ve stejné složce jako vlastní soubory projektu, které používáte k řízení procesu sestavení a nasazení.
V souboru .wpp.targets přidejte element ItemGroup .
V elementu ItemGroup přidejte položky ExcludeFromPackageFolders a ExcludeFromPackageFiles , abyste vyloučili konkrétní soubory a složky podle potřeby.
Toto je základní struktura tohoto souboru .wpp.targets :
<Project ToolsVersion="4.0"
xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup>
<ExcludeFromPackageFolders Include="[semi-colon-separated folder list]">
<FromTarget>[arbitrary metadata value]</FromTarget>
</ExcludeFromPackageFolders>
<ExcludeFromPackageFiles Include="[semi-colon-separated file list]">
<FromTarget>[arbitrary metadata value]</FromTarget>
</ExcludeFromPackageFiles>
</ItemGroup>
</Project>
Všimněte si, že každá položka obsahuje element metadat položky s názvem FromTarget. Toto je volitelná hodnota, která nemá vliv na proces sestavení. Slouží jednoduše k označení, proč byly konkrétní soubory nebo složky vynechány, pokud někdo zkontroluje protokoly sestavení.
Vyloučení souborů a složek z webového balíčku
Následující postup ukazuje, jak přidat soubor .wpp.targets do projektu webové aplikace a jak tento soubor použít k vyloučení konkrétních souborů a složek z webového balíčku při sestavování projektu.
Vyloučení souborů a složek z balíčku pro nasazení webu
Otevřete řešení v sadě Visual Studio 2010.
V okně Průzkumník řešení klikněte pravým tlačítkem na uzel projektu webové aplikace (například ContactManager.Mvc), přejděte na Přidat a klikněte na Nová položka.
V dialogovém okně Přidat novou položku vyberte šablonu Soubor XML .
Do pole Název zadejte [název projektu].wpp.targets (například ContactManager.Mvc.wpp.targets) a klikněte na Přidat.
Poznámka
Pokud přidáte novou položku do kořenového uzlu projektu, soubor se vytvoří ve stejné složce jako soubor projektu. Můžete to ověřit otevřením složky v Průzkumníku Windows.
Do souboru přidejte element Project a Element ItemGroup :
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> <ItemGroup> </ItemGroup> </Project>
Pokud chcete vyloučit složky z webového balíčku, přidejte do elementu ItemGroup element ExcludeFromPackageFolders:
V atributu Include zadejte středníkem oddělený seznam složek, které chcete vyloučit.
V elementu metadat FromTarget zadejte smysluplnou hodnotu označující, proč jsou složky vyloučeny, například název souboru .wpp.targets .
<ExcludeFromPackageFolders Include="Internal"> <FromTarget>ContactManager.Mvc.wpp.targets</FromTarget> </ExcludeFromPackageFolders>
Pokud chcete vyloučit soubory z webového balíčku, přidejte element ExcludeFromPackageFiles do elementu ItemGroup :
V atributu Include zadejte středníkem oddělený seznam souborů, které chcete vyloučit.
V elementu metadat FromTarget zadejte smysluplnou hodnotu označující, proč jsou soubory vyloučeny, například název souboru .wpp.targets .
<ExcludeFromPackageFiles Include="Scripts\jquery-1.4.4-vsdoc.js;Scripts\jquery-1.4.4.js;Scripts\jquery-ui.js;Scripts\jquery.unobtrusive-ajax.js;Scripts\jquery.validate-vsdoc.js;Scripts\jquery.validate.js;Scripts\jquery.validate.unobtrusive.js;Scripts\MicrosoftAjax.debug.js;Scripts\MicrosoftMvcValidation.debug.js"> <FromTarget>ContactManager.Mvc.wpp.targets</FromTarget> </ExcludeFromPackageFiles>
Soubor [název_projektu].wpp.targets by teď měl vypadat takto:
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> <ItemGroup> <ExcludeFromPackageFolders Include="Internal"> <FromTarget>ContactManager.Mvc.wpp.targets</FromTarget> </ExcludeFromPackageFolders> <ExcludeFromPackageFiles Include="Scripts\jquery-1.4.4- vsdoc.js;Scripts\jquery-1.4.4.js;Scripts\jquery-ui.js;Scripts\jquery.unobtrusive-ajax.js;Scripts\jquery.validate-vsdoc.js;Scripts\jquery.validate.js;Scripts\jquery.validate.unobtrusive.js;Scripts\MicrosoftAjax.debug.js;Scripts\MicrosoftMvcValidation.debug.js"> <FromTarget>ContactManager.Mvc.wpp.targets</FromTarget> </ExcludeFromPackageFiles> </ItemGroup> </Project>
Uložte a zavřete soubor [název_projektu].wpp.targets .
Při příštím sestavení a zabalení projektu webové aplikace WPP automaticky rozpozná soubor .wpp.targets . Žádné soubory a složky, které jste zadali, nebudou zahrnuty do webového balíčku.
Závěr
Toto téma popisuje, jak při vytváření webového balíčku vyloučit konkrétní soubory a složky vytvořením vlastního souboru .wpp.targets ve stejné složce jako soubor projektu webové aplikace.
Další čtení
Další informace o použití vlastních souborů projektu Microsoft Build Engine (MSBuild) k řízení procesu nasazení najdete v tématech Pochopení souboru projektu a Principy procesu sestavení. Další informace o procesu balení a nasazení najdete v tématech Sestavení a balení projektů webových aplikací, Konfigurace parametrů pro nasazení webového balíčku a Nasazení webových balíčků.