Sdílet prostřednictvím


Změna výstupního adresáře sestavení

Umístění výstupu vygenerovaného projektem můžete určit podle konfigurace (pro ladění, vydání nebo obojí). Ve výchozím nastavení se výstupní složky liší podle typu projektu a sady SDK s některými projekty, které používají podsložky specifické pro konkrétní platformu nebo architekturu.

Visual Studio poskytuje vlastnosti, které umožňují umístit průběžný a konečný výstup do vlastních složek buď zadáním cest relativních ke složce projektu, nebo absolutní cesty kdekoli v systému souborů. Kromě nastavení, která zadáte ve vlastnostech projektu sady Visual Studio, můžete výstup dále přizpůsobit úpravou souboru projektu a použitím funkcí nástroje MSBuild a sady .NET SDK pro úplnou kontrolu nad všemi aspekty výstupu projektu, a to buď pro jednotlivé projekty, nebo na úrovni řešení pro mnoho projektů.

Změna výstupního adresáře sestavení

  1. Vyčistěte projekt nebo řešení a odeberte všechny existující výstupní soubory (řešení Build>Clean).

  2. Pokud chcete otevřít stránky vlastností projektu, klikněte pravým tlačítkem myši na uzel projektu v Průzkumník řešení a vyberte Vlastnosti.

  3. Na základě typu projektu vyberte příslušnou kartu:

    • V jazyce C# vyberte kartu Sestavení .
    • V jazyce Visual Basic vyberte kartu Kompilace .
    • V jazyce C++ nebo JavaScript vyberte kartu Obecné .
  4. V rozevíracím seznamu konfigurace v horní části zvolte konfiguraci, jejíž umístění výstupního souboru chcete změnit (ladění, vydání nebo všechny konfigurace).

  5. Najděte položku výstupní cesty na stránce – liší se v závislosti na typu projektu:

    • Výstupní cesta pro projekty C# a JavaScript
    • Výstupní cesta sestavení pro projekty Jazyka Visual Basic
    • Výstupní adresář pro projekty Visual C++

    Zadejte cestu, do které chcete vygenerovat výstup (absolutní nebo relativní vzhledem ke kořenovému adresáři projektu), nebo zvolte Procházet a přejděte do této složky.

    Vlastnost výstupní cesty pro projekt v jazyce C# sady Visual Studio

    Poznámka:

    Některé projekty (.NET a ASP.NET Core) ve výchozím nastavení budou v cestě sestavení obsahovat identifikátor verze architektury nebo modulu runtime. Pokud to chcete změnit, klikněte pravým tlačítkem myši na uzel projektu v Průzkumník řešení, vyberte Upravit soubor projektu a přidejte následující:

    <PropertyGroup>
      <AppendTargetFrameworkToOutputPath>false</AppendTargetFrameworkToOutputPath>
      <AppendRuntimeIdentifierToOutputPath>false</AppendRuntimeIdentifierToOutputPath>
    </PropertyGroup>
    

Tip

Pokud se výstup negeneruje do zadaného umístění, ujistěte se, že vytváříte odpovídající konfiguraci (například ladění nebo vydání), a to tak, že ho vyberete na řádku nabídek sady Visual Studio.

Výběr konfigurace sestavení v sadě Visual Studio 2019

Sestavení do společného výstupního adresáře

Visual Studio ve výchozím nastavení sestaví každý projekt v řešení ve své vlastní složce uvnitř řešení. Výstupní cesty sestavení projektů můžete změnit tak, aby se všechny výstupy umístily do stejné složky.

Umístění všech výstupů řešení do společného adresáře

  1. Vyčistíte řešení tak, aby se odebraly všechny existující výstupní soubory (řešení Build>Clean).

  2. V řešení klikněte na jeden projekt.

  3. V nabídce Projekt klepněte na příkaz Vlastnosti.

  4. V každém projektu v závislosti na typu vyberte možnost Zkompilovat nebo Sestavit a nastavte výstupní cestu nebo základní výstupní cestu ke složce, která se má použít pro všechny projekty v řešení.

  5. Otevřete soubor projektu projektu a přidejte následující deklaraci vlastnosti do první skupiny vlastností.

    <PropertyGroup>
      <!-- existing property declarations are here -->
      <UseCommonOutputDirectory>true</UseCommonOutputDirectory>
    </PropertyGroup>
    

    Nastavení UseCommonOutputDirectory , které true říká sadě Visual Studio a jeho podkladovému modulu sestavení (MSBuild), že vkládáte více výstupů projektu do stejné složky, a proto MSBuild vynechá krok kopírování, který se obvykle stane, když projekty závisí na jiných projektech.

  6. Opakujte kroky 2 až 5 pro všechny projekty v řešení. Některé projekty můžete přeskočit, pokud máte některé výjimečné projekty, které by neměly používat společný výstupní adresář.

Nastavení zprostředkujícího výstupního adresáře pro projekt (projekty .NET)

  1. Vyčistěte projekt tak, aby se odebraly všechny existující výstupní soubory.

  2. Otevřete soubor projektu.

  3. Přidejte následující deklaraci vlastnosti do první skupiny vlastností.

    <PropertyGroup>
      <!-- existing property declarations are here -->
      <IntermediateOutputPath>path</IntermediateOutputPath>
    </PropertyGroup>
    

    Cesta je relativní vzhledem k souboru projektu nebo můžete použít absolutní cestu. Chcete-li dát název projektu do cesty, můžete na něj odkazovat pomocí msBuild vlastnosti $(MSBuildProjectName), $(MSBuildProjectDirectory). Další vlastnosti, které můžete použít, naleznete v tématu rezervované a dobře známé vlastnosti nástroje MSBuild.

  4. Visual Studio při sestavování pořád vytvoří složku obj ve složce projektu, ale je prázdná. Můžete ho odstranit v rámci procesu sestavení. Jedním zezpůsobůch

    rd "$(ProjectDir)obj" /s /q
    

    Viz Určení vlastních událostí sestavení.

V sadě Visual Studio 2022 existují různá uživatelská rozhraní Návrháře projektů v závislosti na typu projektu. C# .NET Framework a všechny projekty jazyka Visual Basic používají starší verzi Návrháře projektů .NET, ale projekty C# .NET Core (a .NET 5 a novější) používají aktuální návrhář projektu .NET. Projekty C++ používají vlastní uživatelské rozhraní stránek vlastností. Postup v této části závisí na tom, jaký návrhář projektu používáte.

Změna výstupního adresáře sestavení

Tento postup platí pro projekty C# v sadě Visual Studio 2022, které cílí na .NET Core nebo .NET 5 a novější.

  1. Vyčistěte projekt nebo řešení a odeberte všechny existující výstupní soubory (řešení Build>Clean).

  2. Klikněte pravým tlačítkem myši na uzel projektu v Průzkumník řešení a vyberte Vlastnosti.

  3. Rozbalte oddíl Sestavení a posuňte se dolů k pododdílu Výstup.

  4. Vyhledejte základní výstupní cestu pro C# a zadejte cestu, do které chcete vygenerovat výstup (absolutní nebo relativní vzhledem ke kořenovému adresáři projektu), nebo zvolte Procházet a přejděte do této složky. Všimněte si, že název konfigurace je připojen k základní výstupní cestě pro vygenerování skutečné výstupní cesty.

    Snímek obrazovky znázorňující vlastnost Výstupní cesta pro projekt v jazyce C# .NET Core

    Poznámka:

    Některé projekty (.NET a ASP.NET Core) budou ve výchozím nastavení obsahovat identifikátor verze rozhraní nebo modulu runtime do konečné výstupní cesty. Pokud to chcete změnit, klikněte pravým tlačítkem myši na uzel projektu v Průzkumník řešení, vyberte Upravit soubor projektu a přidejte následující:

    <PropertyGroup>
      <AppendTargetFrameworkToOutputPath>false</AppendTargetFrameworkToOutputPath>
      <AppendRuntimeIdentifierToOutputPath>false</AppendRuntimeIdentifierToOutputPath>
    </PropertyGroup>
    

Sestavení do společného výstupního adresáře

Visual Studio ve výchozím nastavení sestaví každý projekt v řešení ve své vlastní složce uvnitř řešení. Výstupní cesty sestavení projektů můžete změnit tak, aby se všechny výstupy umístily do stejné složky.

  1. Vyčistíte řešení tak, aby se odebraly všechny existující výstupní soubory (řešení Build>Clean).

  2. V řešení klikněte na jeden projekt.

  3. V nabídce Projekt klepněte na příkaz Vlastnosti.

  4. V každém projektu v závislosti na typu vyberte možnost Zkompilovat nebo Sestavit a nastavte výstupní cestu nebo základní výstupní cestu ke složce, která se má použít pro všechny projekty v řešení.

  5. Otevřete soubor projektu projektu a přidejte následující deklaraci vlastnosti do první skupiny vlastností.

    <PropertyGroup>
      <!-- existing property declarations are here -->
      <UseCommonOutputDirectory>true</UseCommonOutputDirectory>
    </PropertyGroup>
    

    Nastavení UseCommonOutputDirectory , které true říká sadě Visual Studio a jeho podkladovému modulu sestavení (MSBuild), že vkládáte více výstupů projektu do stejné složky, a proto MSBuild vynechá krok kopírování, který se obvykle stane, když projekty závisí na jiných projektech.

  6. Opakujte kroky 2 až 5 pro všechny projekty v řešení. Některé projekty můžete přeskočit, pokud máte některé výjimečné projekty, které by neměly používat společný výstupní adresář.

Tip

Pokud se výstup negeneruje do zadaného umístění, ujistěte se, že vytváříte odpovídající konfiguraci (například ladění nebo vydání), a to tak, že ho vyberete na řádku nabídek sady Visual Studio.

Snímek obrazovky s výběrem konfigurace sestavení v sadě Visual Studio 2022

Nastavení zprostředkujícího výstupního adresáře pro projekt

Tento postup platí pro projekty C# v sadě Visual Studio 2022, které cílí na .NET Core nebo .NET 5 a novější.

  1. Vyčistěte projekt tak, aby se odebraly všechny existující výstupní soubory.

  2. Otevřete soubor projektu.

  3. Přidejte následující deklaraci vlastnosti do první skupiny vlastností.

    <PropertyGroup>
      <!-- existing property declarations are here -->
      <IntermediateOutputPath>path</IntermediateOutputPath>
    </PropertyGroup>
    

    Cesta je relativní vzhledem k souboru projektu nebo můžete použít absolutní cestu. Chcete-li dát název projektu do cesty, můžete na něj odkazovat pomocí msBuild vlastnosti $(MSBuildProjectName), $(MSBuildProjectDirectory). Další vlastnosti, které můžete použít, naleznete v tématu rezervované a dobře známé vlastnosti nástroje MSBuild.

  4. Visual Studio při sestavování pořád vytvoří složku obj ve složce projektu, ale je prázdná. Můžete ho odstranit v rámci procesu sestavení. Jedním zezpůsobůch

    rd "$(ProjectDir)obj" /s /q
    

    Viz Určení vlastních událostí sestavení.

Použití Directory.Build.props k nastavení výstupního adresáře

Pokud máte velký počet projektů a chcete změnit výstupní složku pro všechny, bude zdlouhavé a náchylné ke změně jednotlivých projektů pomocí metod popsaných výše v tomto článku. V takových případech můžete vytvořit soubor ve složce řešení Directory.Build.props a nastavit odpovídající vlastnosti NÁSTROJE MSBuild na jednom místě, aby se použily pro všechny projekty v řešení. Umístěním souboru s tímto konkrétním názvem do nadřazené složky všech projektů, které chcete ovlivnit, můžete snadno udržovat vlastní nastavení na jednom místě a snadno změnit hodnoty. Viz Přizpůsobení sestavení podle složky.

Uspořádání výstupu sestavení pomocí artefaktů

U projektů .NET 8 můžete pomocí funkcí artefaktů uspořádat výstup vysoce přizpůsobitelným a flexibilním způsobem. Viz rozložení výstupu artefaktů.