Udostępnij za pośrednictwem


Celowanie w wiele wersji i platform środowiskowych

Za pomocą programu MSBuild można skompilować aplikację do uruchomienia na dowolnej z kilku wersji programu .NET Framework i na dowolnej z kilku platform systemowych. Na przykład można skompilować aplikację do uruchomienia na platformie .NET Framework 2.0 na platformie 32-bitowej i skompilować tę samą aplikację do uruchomienia na platformie .NET Framework 4.5 na platformie 64-bitowej.

Notatka

W tym artykule opisano starszy typ wielotargetowania, który ma zastosowanie do kompilacji programu .NET Framework, w których projekt może być przeznaczony tylko dla jednej platformy i tylko jednej platformy naraz. W .NET Core oraz .NET 5 i nowszych wersjach można zastosować nowszy typ wielokrotnego targetowania, korzystając z właściwości TargetFrameworks (mnogiej) w pliku projektu. Kompilując za pomocą dotnet build lub podobnych poleceń wiersza poleceń .NET, albo w programie Visual Studio po ponownym załadowaniu projektu, kompilacja używa nowszego typu wielotargetingu, gdzie wykonuje się wiele kompilacji, jedna dla każdej z wymienionych platform docelowych. Zobacz Frameworky docelowe.

Oto niektóre cechy systemu docelowego MSBuild:

  • Możesz opracować aplikację przeznaczoną dla starszej wersji programu .NET Framework, na przykład w wersji 2.0, 3.5 lub 4.

  • Możesz wybrać platformę inną niż .NET Framework, na przykład Silverlight.

  • Można celować w profil frameworka , który jest wstępnie zdefiniowanym podzbiorem frameworka docelowego.

  • Jeśli zostanie wydany pakiet serwisowy dla bieżącej wersji programu .NET Framework, możesz go obrać za cel.

  • Określanie celu programu MSBuild gwarantuje, że aplikacja korzysta tylko z funkcji, które są dostępne w docelowej strukturze i platformie.

Szkielet docelowy i platforma

Środowisko docelowe to wersja programu .NET Framework, na której jest kompilowany projekt, a platforma docelowa to platforma systemowa, na której jest tworzony projekt. Możesz na przykład chcieć uruchomić aplikację .NET Framework 2.0 na 32-bitowej platformie zgodnej z rodziną procesorów 80x86 (x86). Kombinacja frameworka docelowego i platformy docelowej jest znana jako kontekst docelowy . Aby uzyskać więcej informacji, zobacz Strukturę docelową i platformę docelową.

Zestaw narzędzi (ToolsVersion)

Zestaw narzędzi zbiera razem narzędzia, zadania i obiekty docelowe używane do tworzenia aplikacji. Zestaw narzędzi zawiera kompilatory, takie jak csc.exe i vbc.exe, wspólny plik obiektów docelowych (microsoft.common.targets) oraz wspólny plik zadań (microsoft.common.tasks). Zestaw narzędzi 4.5 może służyć do określania docelowych wersji programu .NET Framework w wersji 2.0, 3.0, 3.5, 4 i 4.5. Jednak zestaw narzędzi 2.0 może służyć tylko do kierowania programu .NET Framework w wersji 2.0. Aby uzyskać więcej informacji, zobacz Toolset (ToolsVersion).

Zestawy odwołań

Zestawy referencyjne określone w zestawie narzędzi ułatwiają projektowanie i tworzenie aplikacji. Te zestawy referencyjne nie tylko umożliwiają konkretną kompilację docelową, ale także ograniczają składniki i funkcje w środowisku IDE programu Visual Studio do tych, które są zgodne z obiektem docelowym. Aby uzyskać więcej informacji, zobacz Rozwiązywanie asemblii w czasie projektowania.

Konfigurowanie obiektów docelowych i zadań

Elementy docelowe i zadania programu MSBuild można skonfigurować tak, aby uruchamiały się w trybie out-of-process za pomocą programu MSBuild, dzięki czemu można obsługiwać konteksty, które są znacznie inne niż te, w których działasz. Na przykład, można docelowo wspierać aplikację 32-bitową na .NET Framework 2.0, podczas gdy komputer dewelopera działa na 64-bitowej platformie z .NET Framework 4.5. Aby uzyskać więcej informacji, zobacz Konfigurowanie obiektów docelowych i zadań.

Rozwiązywanie problemów

Jeśli spróbujesz odwołać się do zestawu, który nie jest częścią kontekstu docelowego, może wystąpić błąd. Aby uzyskać więcej informacji na temat tych błędów i jak sobie z nimi radzić, zobacz Rozwiązywanie problemów z błędami docelowymi programu .NET Framework.