Udostępnij za pośrednictwem


Zmienianie katalogu wyjściowego kompilacji

Możesz określić lokalizację danych wyjściowych wygenerowanych przez projekt dla poszczególnych konfiguracji (dla debugowania, wydania lub obu tych elementów). W przypadku ustawień domyślnych foldery wyjściowe różnią się w zależności od typu projektu i zestawu SDK, a niektóre projekty korzystają z podfolderów specyficznych dla platformy lub frameworku.

Program Visual Studio udostępnia właściwości, które umożliwiają umieszczenie pośrednich i końcowych danych wyjściowych w folderach niestandardowych przez określenie ścieżek względem folderu projektu lub ścieżki bezwzględnej w dowolnym miejscu w systemie plików. Oprócz ustawień, które można określić we właściwościach projektu programu Visual Studio, można również dodatkowo dostosować dane wyjściowe, edytując plik projektu i korzystając z możliwości programu MSBuild i zestawu .NET SDK w celu pełnej kontroli nad wszystkimi aspektami danych wyjściowych projektu, zarówno dla poszczególnych projektów, jak i na poziomie rozwiązania dla wielu projektów.

Zmienianie katalogu wyjściowego kompilacji

  1. Wyczyść projekt lub rozwiązanie, aby usunąć wszystkie istniejące pliki wyjściowe (Build>Clean solution).

  2. Aby otworzyć strony właściwości projektu, kliknij prawym przyciskiem myszy węzeł projektu w eksploratorze rozwiązań i wybierz pozycję właściwości .

  3. Wybierz odpowiednią kartę na podstawie typu projektu:

    • Dla C# wybierz kartę Kompilacja.
    • Dla Visual Basic wybierz kartę kompilowanie.
    • W przypadku języka C++ lub JavaScript wybierz kartę Ogólne.
  4. Z listy rozwijanej konfiguracji na górze wybierz konfigurację, której lokalizację pliku wyjściowego chcesz zmienić (Debug, Releaselub Wszystkie konfiguracje).

  5. Znajdź pozycję ścieżki wyjściowej na stronie — różni się ona w zależności od typu projektu.

    • ścieżka wyjściowa dla projektów C# i JavaScript
    • Ścieżka wyjściowa kompilacji dla projektów Visual Basic
    • Katalog wyjściowy dla projektów Visual C++

    Wpisz ścieżkę, aby wygenerować dane wyjściowe (bezwzględne lub względne względem katalogu głównego projektu) lub wybierz Przeglądaj, aby przejść do tego folderu.

    właściwość ścieżki wyjściowej dla projektu programu Visual Studio C#

    Notatka

    Niektóre projekty (.NET i ASP.NET Core) domyślnie zawierają wersję platformy lub identyfikator środowiska uruchomieniowego w ścieżce kompilacji. Aby to zmienić, kliknij prawym przyciskiem myszy węzeł projektu w eksploratorze rozwiązań , wybierz pozycję Edytuj plik projektui dodaj następujące elementy:

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

Napiwek

Jeśli wyjście nie jest generowane w określonej lokalizacji, upewnij się, że tworzysz odpowiednią konfigurację (na przykład Debug lub Release) poprzez wybranie jej na pasku menu programu Visual Studio.

Selektor konfiguracji kompilacji w programie Visual Studio 2019.

Kompilowanie do wspólnego katalogu wyjściowego

Domyślnie program Visual Studio kompiluje każdy projekt w rozwiązaniu we własnym folderze wewnątrz rozwiązania. Możesz zmienić ścieżki wyjściowe kompilacji projektów, aby wymusić umieszczenie wszystkich danych wyjściowych w tym samym folderze.

Aby umieścić wszystkie dane wyjściowe rozwiązania w wspólnym katalogu

  1. Wyczyść rozwiązanie, aby usunąć wszystkie istniejące pliki wyjściowe (Build>Clean solution).

  2. Kliknij jeden projekt w rozwiązaniu.

  3. W menu Project kliknij pozycję Właściwości.

  4. W każdym projekcie, w zależności od jego typu, wybierz Compile lub Build, a następnie ustaw ścieżkę danych wyjściowych lub ścieżkę danych wyjściowych Base do folderu, który ma być używany dla wszystkich projektów w rozwiązaniu.

  5. Otwórz plik projektu dla projektu i dodaj następującą deklarację właściwości do pierwszej grupy właściwości.

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

    Ustawienie UseCommonOutputDirectory na true informuje program Visual Studio i jego podstawowy aparat kompilacji (MSBuild), że umieszczasz wiele danych wyjściowych projektu w tym samym folderze, dlatego program MSBuild pomija krok kopiowania, który zwykle występuje, gdy projekty zależą od innych projektów.

  6. Powtórz kroki 2–5 dla wszystkich projektów w rozwiązaniu. Niektóre projekty można pominąć, jeśli masz kilka wyjątkowych projektów, które nie powinny używać wspólnego katalogu wyjściowego.

Aby ustawić pośredni katalog wyjściowy dla projektu (projekty .NET)

  1. Wyczyść projekt, aby usunąć wszystkie istniejące pliki wyjściowe.

  2. Otwórz plik projektu.

  3. Dodaj następującą deklarację właściwości do pierwszej grupy właściwości.

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

    Ścieżka jest względna względem pliku projektu lub można użyć ścieżki bezwzględnej. Jeśli chcesz umieścić nazwę projektu w ścieżce, możesz odwołać się do niego przy użyciu właściwości MSBuild $(MSBuildProjectName), $(MSBuildProjectDirectory). Aby uzyskać więcej informacji o właściwościach, których można użyć, zobacz zarezerwowane i dobrze znane właściwości.

  4. Program Visual Studio nadal tworzy folder obj w folderze projektu podczas kompilacji, ale jest pusty. Można go usunąć w ramach procesu kompilacji. Jednym ze sposobów, aby to zrobić, jest dodanie zdarzenia po kompilacji w celu uruchomienia następującego polecenia:

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

    Zobacz Określanie niestandardowych zdarzeń kompilacji.

W programie Visual Studio 2022 istnieją różne interfejsy użytkownika programu Project Designer, w zależności od typu projektu. Projekty .NET Framework korzystają ze starszej wersji programu .NET Project Designer, ale projekty .NET Core (i .NET 5 i nowsze) używają bieżącego projektanta projektów .NET. Projekty języka C++ używają własnego interfejsu użytkownika stron właściwości. Kroki opisane w tej sekcji zależą od używanego projektanta projektu.

Zmienianie katalogu wyjściowego kompilacji

Ta procedura dotyczy projektów w programie Visual Studio 2022 przeznaczonym dla platformy .NET Core lub .NET 5 i nowszych.

  1. Wyczyść projekt lub rozwiązanie, aby usunąć wszystkie istniejące pliki wyjściowe (Build>Clean solution).

  2. Kliknij prawym przyciskiem myszy węzeł projektu w eksploratorze rozwiązań i wybierz pozycję właściwości .

  3. W przypadku projektów języka C# rozwiń sekcję Build i przewiń w dół do podsekcji Output. W przypadku języka Visual Basic rozwiń sekcję kompilowania i zapoznaj się z sekcją Ogólne.

  4. Znajdź podstawową ścieżkę wyjściowąi wpisz ścieżkę do wygenerowania wyjścia (bezwzględną lub względną względem katalogu głównego projektu) lub wybierz Przeglądaj, aby przejrzeć do tego folderu. Pamiętaj, że nazwa konfiguracji jest dołączana do podstawowej ścieżki wyjściowej w celu wygenerowania rzeczywistej ścieżki wyjściowej.

    C#:

    Zrzut ekranu przedstawiający właściwość ścieżki wyjściowej dla projektu języka C# platformy .NET Core.

    Visual Basic:

    Zrzut ekranu przedstawiający właściwość ścieżki wyjściowej dla projektu Visual Basic platformy .NET Core.

    Notatka

    Niektóre projekty (.NET i ASP.NET Core) domyślnie zawierają wersję platformy lub identyfikator środowiska uruchomieniowego w końcowej ścieżce wyjściowej. Aby to zmienić, kliknij prawym przyciskiem myszy węzeł projektu w eksploratorze rozwiązań , wybierz pozycję Edytuj plik projektui dodaj następujące elementy:

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

Kompilowanie do wspólnego katalogu wyjściowego

Domyślnie program Visual Studio kompiluje każdy projekt w rozwiązaniu we własnym folderze wewnątrz rozwiązania. Możesz zmienić ścieżki wyjściowe kompilacji projektów, aby wymusić umieszczenie wszystkich danych wyjściowych w tym samym folderze.

  1. Wyczyść rozwiązanie, aby usunąć wszystkie istniejące pliki wyjściowe (Build>Clean solution).

  2. Kliknij na jeden z projektów w rozwiązaniu.

  3. W menu Project kliknij pozycję Właściwości.

  4. W każdym projekcie, w zależności od jego typu, wybierz Compile lub Build, a następnie ustaw ścieżkę danych wyjściowych lub ścieżkę danych wyjściowych Base do folderu, który ma być używany dla wszystkich projektów w rozwiązaniu.

  5. Otwórz plik projektu dla projektu i dodaj następującą deklarację właściwości do pierwszej grupy właściwości.

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

    Ustawienie UseCommonOutputDirectory na true informuje program Visual Studio i jego podstawowy aparat kompilacji (MSBuild), że umieszczasz wiele danych wyjściowych projektu w tym samym folderze, dlatego program MSBuild pomija krok kopiowania, który zwykle występuje, gdy projekty zależą od innych projektów.

  6. Powtórz kroki 2–5 dla wszystkich projektów w rozwiązaniu. Niektóre projekty można pominąć, jeśli masz kilka wyjątkowych projektów, które nie powinny używać wspólnego katalogu wyjściowego.

Napiwek

Jeśli dane wyjściowe nie są generowane w określonej lokalizacji, upewnij się, że tworzysz odpowiednią konfigurację (na przykład Debug lub Release), wybierając ją na pasku menu programu Visual Studio.

Zrzut ekranu przedstawiający selektor konfiguracji kompilacji w programie Visual Studio 2022.

Ustawianie pośredniego katalogu wyjściowego dla projektu

Ta procedura dotyczy projektów w programie Visual Studio 2022 przeznaczonym dla platformy .NET Core lub .NET 5 i nowszych.

  1. Wyczyść projekt, aby usunąć wszystkie istniejące pliki wyjściowe.

  2. Otwórz plik projektu.

  3. Dodaj następującą deklarację właściwości do pierwszej grupy właściwości.

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

    Ścieżka jest względna względem pliku projektu lub można użyć ścieżki bezwzględnej. Jeśli chcesz umieścić nazwę projektu w ścieżce, możesz odwołać się do niego przy użyciu właściwości MSBuild $(MSBuildProjectName), $(MSBuildProjectDirectory). Więcej właściwości, których możesz użyć, znajdziesz w zarezerwowanych i dobrze znanych właściwościach MSBuild.

  4. Program Visual Studio nadal tworzy folder obj w folderze projektu podczas kompilacji, ale jest pusty. Można go usunąć w ramach procesu kompilacji. Jednym ze sposobów, aby to zrobić, jest dodanie zdarzenia po kompilacji w celu uruchomienia następującego polecenia:

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

    Zobacz Określanie niestandardowych zdarzeń kompilacji.

Użyj pliku Directory.Build.props, aby ustawić katalog wyjściowy

Jeśli masz dużą liczbę projektów i chcesz zmienić folder wyjściowy dla nich wszystkich, będzie to żmudne i podatne na błędy zmiany każdego z nich przy użyciu metod opisanych wcześniej w tym artykule. W takich przypadkach można utworzyć plik w folderze rozwiązania, Directory.Build.props, aby ustawić odpowiednie właściwości programu MSBuild w jednym miejscu, aby zastosować je do wszystkich projektów w rozwiązaniu. Umieszczając plik o tej konkretnej nazwie w folderze nadrzędnym wszystkich projektów, których dotyczy problem, można łatwo zachować dostosowania w jednym miejscu i ułatwić zmianę wartości. Zobacz Dostosowywanie kompilacji według folderu.

Organizowanie danych wyjściowych kompilacji przy użyciu artefaktów

W przypadku projektów platformy .NET 8 można użyć funkcji artefaktów do rozmieszczania danych wyjściowych w sposób wysoce dostosowywalny i elastyczny. Zobacz układ wyjściowy Artifacts.