Właściwości kompilacji dla systemów iOS, Mac Catalyst, macOS i tvOS

Właściwości programu MSBuild kontrolują zachowanie obiektów docelowych. Są one określone w pliku projektu, na przykład MyApp.csproj, w grupie właściwości MSBuild.

AltoolPath

Pełna ścieżka do altool narzędzia.

Domyślnym zachowaniem jest użycie elementu xcrun altool.

ACToolPath

Pełna ścieżka do actool narzędzia.

Domyślnym zachowaniem jest użycie elementu xcrun actool.

AppBundleResourcePrefix

Katalog, w którym są przechowywane zasoby (ten prefiks zostanie usunięty podczas kopiowania zasobów do pakietu aplikacji).

Jeśli ta właściwość nie zostanie jawnie ustawiona, odziedziczy jej wartość z właściwości prefiksu zasobu specyficznego dla platformy (IPhoneResourcePrefix, MonoMacResourcePrefix lub XamMacResourcePrefix w zależności od platformy).

Ustawienie domyślne: "Zasoby"

AppBundleDir

Lokalizacja utworzonego pakietu aplikacji.

AppBundleExtraOptions

Zaawansowane dodatkowe argumenty tworzenia pakietu aplikacji.

Prawidłowy zestaw argumentów zależy od platformy.

Zazwyczaj nie należy ich używać, chyba że zostanie to określone przez inżyniera firmy Microsoft.

Ikona aplikacji

Grupę AppIcon elementów można użyć do określenia ikony aplikacji dla aplikacji.

Wartość właściwości musi wskazywać nazwę pliku obrazu .appiconset (dla systemów iOS, macOS i Mac Catalyst) lub .brandassets (dla systemu tvOS), który znajduje się wewnątrz katalogu zasobów.

Przykład:

<PropertyGroup>
    <!-- The value to put in here for the "Resources/MyImages.xcassets/MyAppIcon.appiconset" resource would be "MyAppIcon" -->
    <AppIcon>MyAppIcon</AppIcon>
</PropertyGroup>

Zobacz również:

WersjaWyświetlanaAplikacji

Określa wartość CFBundleShortVersionString w manifeście aplikacji (Info.plist), jeśli zostanie ustawiona.

Jest to właściwość obsługującą program .NET "Single Project".

Aby uzyskać więcej informacji, zobacz OneDotNetSingleProject .

Identyfikator aplikacji

Określa wartość CFBundleIdentifier w manifeście aplikacji (Info.plist), jeśli zostanie ustawiona.

Jest to właściwość obsługującą program .NET "Single Project".

Aby uzyskać więcej informacji, zobacz OneDotNetSingleProject .

NazwaAplikacji

Jeśli jest ustawione, określa element CFBundleDisplayName w manifeście aplikacji (Info.plist).

Jest to właściwość obsługującą program .NET "Single Project".

Aby uzyskać więcej informacji, zobacz OneDotNetSingleProject .

WersjaAplikacji

Jeśli jest ustawione, określa element CFBundleVersion w manifeście aplikacji (Info.plist).

Jest to właściwość obsługującą program .NET "Single Project".

Aby uzyskać więcej informacji, zobacz OneDotNetSingleProject .

ArchiveBasePath

Lokalizacja, w której archiwa są przechowywane w systemie Windows na potrzeby kompilacji zdalnej.

Wartość domyślna to: %LocalAppData%\Xamarin\iOS\Archives

Dotyczy tylko projektów systemu iOS (ponieważ tylko projekty systemu iOS można tworzyć zdalnie z systemu Windows).

Katalog archiwum

Opcjonalna ścieżka katalogu archiwum. W przypadku ustawienia archiwum zostanie utworzone w tym katalogu zamiast wyznaczać unikatową ścieżkę pod ~/Library/Developer/Xcode/Archives.

ArchiveOnBuild

Jeśli archiwum Xcode powinno zostać utworzone na końcu kompilacji.

Utworzone archiwa są widoczne w grupie elementów ApplicationArtifact .

BGenEmitDebugInformation

bgen Czy narzędzie (generator powiązań) powinno emitować informacje debugowania, czy nie.

Domyślne działanie to true, gdy właściwość Debug jest ustawiona na true.

BGenExtraArgs

Dodatkowe argumenty dla narzędzia bgen (generatora powiązań).

BGenToolExe

Nazwa bgen pliku wykonywalnego (narzędzie używane przez projekty powiązań do tworzenia powiązań).

Domyślnym zachowaniem jest użycie narzędzia bgen, które jest dostarczane wraz z naszym obciążeniem.

BGenToolPath

Katalog, w którym bgen znajduje się obiekt (BGenToolExe).

Domyślnym zachowaniem jest użycie narzędzia bgen, które jest dostarczane wraz z naszym obciążeniem.

BuildIpa

Jeśli pakiet (.ipa) powinien zostać utworzony dla pakietu aplikacji pod koniec kompilacji.

Dotyczy tylko projektów systemów iOS i tvOS.

Zobacz CreatePackage dla projektów macOS i Mac Catalyst.

Utworzone pakiety IPA są udostępniane w grupie elementów ApplicationArtifact.

BundleCreateDump

CoreCLR ma narzędzie wiersza polecenia nazywane createdump do tworzenia zrzutów pamięci, jeśli proces ulegnie awarii. System macOS automatycznie utworzy raporty o awarii dla wszystkich aplikacji ze sklepu App Store i udostępni je deweloperowi aplikacji, dzięki czemu createdump narzędzie nie jest przydatne w przypadku wielu aplikacji systemu macOS, a w związku z tym nie jest domyślnie uwzględniane w aplikacjach.

Można to zastąpić, ustawiając BundleCreateDump właściwość:

<PropertyGroup>
  <BundleCreateDump>true</BundleCreateDump>
</PropertyGroup>

Uwaga: narzędzie createdump obecnie nie działa w przypadku aplikacji sandboxed (#18961);

Dotyczy tylko projektów korzystających ze środowiska uruchomieniowego CoreCLR (które w momencie pisania tego tekstu dotyczy tylko projektów systemu macOS).

PakietOryginalnychZasobów

Ta właściwość określa, czy zasoby są kompilowane przed osadzeniem w projektach bibliotek, czy też osadzana jest oryginalna (nieskompilowana) wersja.

W przeszłości zasoby były kompilowane przed osadzeniem ich w projektach bibliotecznych, ale wymaga to posiadania dostępu do środowiska Xcode, co ma kilka wad:

  • Spowalnia zdalne kompilacje w systemie Windows.
  • Nie będzie działać podczas lokalnego kompilowania w systemie Windows ani na żadnej innej platformie z wyjątkiem systemu macOS.
  • Zasoby są kompilowane przy użyciu bieżącego dostępnego środowiska Xcode, które mogą nie mieć takich samych funkcji, jak potencjalnie nowszy kod Xcode dostępny po wykorzystaniu danej biblioteki.
  • Nie można mieć całościowego wglądu w zasoby podczas budowania aplikacji, co jest niezbędne do wykrywania konfliktujących zasobów.

W związku z tym dodaliśmy obsługę osadzania oryginalnych zasobów w bibliotekach. Opcja rejestracji będzie dostępna w .NET 9, ale będzie można ją wyłączyć, zaczynając od .NET 10.

Wartość domyślna tej właściwości false na platformie .NET 9 i true na platformie .NET 10+.

Uwaga / Notatka

Zgłoś problem, jeśli okaże się, że musisz wyłączyć tę funkcję, ponieważ jest możliwe, że opcja jej wyłączenia zostanie usunięta w przyszłości.

CheckForIllegalCrossThreadCalls

Określa, czy są wykonywane sprawdzenia wątku interfejsu użytkownika (wywołania [NS|UI]Application.EnsureUIThread, emitowane przez wygenerowane powiązania dla kodu interfejsu użytkownika).

Gdy ustawiono wartość true, sprawdzanie jest włączone: uzyskiwanie dostępu do interfejsu API interfejsu użytkownika poza wątkiem interfejsu użytkownika zgłasza wyjątek. Gdy jest ustawiona wartość false, kontrole są wyłączone.

Ta właściwość jest emitowana jako przełącznik funkcji środowiska uruchomieniowego ObjCRuntime.Runtime.CheckForIllegalCrossThreadCalls, dlatego obowiązuje nawet wtedy, gdy przycinanie jest wyłączone: pole [NS|UI]Application.CheckForIllegalCrossThreadCalls odzwierciedla wartość właściwości w czasie wykonywania, a kontrole są odpowiednio włączone lub wyłączone.

Gdy trimowanie jest włączone, a kontrole są wyłączone, ILLink dodatkowo zastępuje treść metody [NS|UI]Application.EnsureUIThread atrapą i usuwa pole CheckForIllegalCrossThreadCalls, co sprawia, że aplikacja jest nieco mniejsza i szybsza.

Jeśli ta wartość nie zostanie określona, kontrole są przechowywane w kompilacjach debug i usuwane w kompilacjach release.

CodesignAllocate

Ścieżka do codesign_allocate narzędzia.

Domyślnie ta wartość jest wykrywana automatycznie.

CodesignConfigureDependsOn

Jest to punkt rozszerzenia kompilacji: deweloper może dodać dowolne obiekty docelowe do tej właściwości, aby wykonać te obiekty docelowe, zanim kompilacja przyjrzy się dowolnym właściwościom współprojektowania.

Można to na przykład użyć do wyłączenia podpisywania kodu dla kompilacji symulatora:

<PropertyGroup>
  <CodesignConfigureDependsOn>$(CodesignConfigureDependsOn);DisableCodesignInSimulator</CodesignConfigureDependsOn>
</PropertyGroup>
<Target Name="DisableCodesignInSimulator" Condition="'$(SdkIsSimulator)' == 'true'">
  <PropertyGroup>
    <EnableCodeSigning>false</EnableCodeSigning>
  </PropertyGroup>
</Target>

CodesignDependsOn

Jest to punkt rozszerzenia dla kompilacji: deweloper może dodać dowolne cele do tej właściwości, aby wykonać te cele przed podpisaniem pakietu aplikacji.

Przykład:

<PropertyGroup>
  <CodesignDependsOn>$(CodesignDependsOn);DoThisBeforeCodesign</CodesignDependsOn>
</PropertyGroup>
<Target Name="DoThisBeforeCodesign">
  <Exec Command="echo This is executed right before the app is signed." />
</Target>

CodesignEntitlements

Ścieżka do pliku uprawnień, który określa uprawnienia wymagane przez aplikację.

Zwykle „Entitlements.plist”.

Ustawimy to automatycznie na "Entitlements.plist", jeśli taki plik istnieje w katalogu głównym projektu.

Można temu zapobiec, ustawiając właściwość EnableDefaultCodesignEntitlements na false.

CodesignExtraArgs

Dodatkowe argumenty przekazywane do narzędzia 'codesign' podczas podpisywania pakietu aplikacyjnego.

CodesignKey

Określa klucz podpisywania kodu do użycia podczas podpisywania pakietu aplikacji.

CodesignKeychain

Pęk kluczy do użycia podczas podpisywania kodu.

KluczDoPodpisywaniaKodu

Określa klucz podpisywania kodu do użycia podczas podpisywania pakietu aplikacji.

Dotyczy tylko aplikacji macOS i Mac Catalyst, ale zaleca się użycie właściwości CodesignKey (która działa na wszystkich platformach).

CodesignProvision

Określa profil aprowizacji, który ma być używany podczas podpisywania pakietu aplikacji.

CodesignResourceRules

Ścieżka do pliku ResourceRules.plist do skopiowania do pakietu aplikacji.

CodesignRequireProvisioningProfile

Określa, czy wymagany jest profil konfiguracyjny podczas podpisywania pakietu aplikacji.

Domyślnie wymagany jest profil aprowizacji, jeśli:

  • macOS, Mac Catalyst: określono profil aprowizacji (z właściwością CodesignProvision ).
  • iOS, tvOS: kompilacja dla urządzenia lub określenie pliku uprawnień (z właściwością CodesignEntitlements).

Ustawienie tej właściwości na true lub false spowoduje zastąpienie logiki domyślnej.

PakietZasobówDoKompresjiBinding

Odwołania natywne w projektach powiązań są kopiowane do katalogu wyjściowego w trakcie procesu kompilacji, wraz z zestawem powiązań, do czegoś, co nazywamy "pakietem zasobów powiązań".

Te odwołania natywne mogą być przechowywane skompresowane wewnątrz pliku zip o nazwie $(AssemblyName).resources.zip, albo jako-w-iste, wewnątrz katalogu o nazwie $(AssemblyName).resources.

Właściwość CompressBindingResourcePackage określa, czy utworzyć plik zip, czy katalog.

Możliwe wartości to:

  • auto: automatycznie decyduje o najlepszej opcji (obecnie zawsze tworzony jest plik zip, ale gdy program Visual Studio zacznie obsługiwać długie ścieżki w systemie Windows, może to zostać zmienione na pakiety zasobów powiązane zip z dowiązaniami symbolicznymi).
  • true: tworzenie pliku zip
  • false: tworzenie katalogu

Wartość domyślna to auto.

Dotyczy to również sposobu przechowywania odwołań natywnych wewnątrz pakietów NuGet.

Uwaga / Notatka

W niektórych przypadkach korzystne może być wymuszenie użycia pliku zip również w systemie iOS, zwłaszcza gdy istnieje framework z plikami o długich nazwach, ponieważ plik zip może czasami obejść problemy z MAX_PATH w systemie Windows.

CopyDSYMToPublishDirectory

Właściwość logiczna określająca, czy jakiekolwiek wygenerowane *.dSYM katalogi powinny być kopiowane do katalogu publikowania podczas publikowania (dotnet publish).

Katalogi *.dSYM są generowane obok pakietu aplikacji (zobacz NoDSymUtil), a gdy ta właściwość ma wartość true, również zostaną skopiowane do katalogu publikowania (obok wygenerowanych .ipa/.pkgkatalogów).

Domyślna wartość to true.

CopySceneKitAssetsPath

Pełna ścieżka do copySceneKitAssets narzędzia.

Domyślnym zachowaniem jest użycie elementu xcrun copySceneKitAssets.

CoreMLCompilerPath

Pełna ścieżka do coremlc narzędzia.

Domyślnym zachowaniem jest użycie elementu xcrun coremlc.

CreateAppBundleDependsOn

Jest to punkt rozszerzenia kompilacji: deweloper może dodać dowolne elementy docelowe do tej właściwości, aby wykonać te obiekty docelowe podczas tworzenia pakietu aplikacji.

Przykład:

<PropertyGroup>
  <CreateAppBundleDependsOn>$(CreateAppBundleDependsOn);DoThisBeforeCreatingAppBundle</CreateAppBundleDependsOn>
</PropertyGroup>
<Target Name="DoThisBeforeCreatingAppBundle">
  <Exec Command="echo This is executed before the app bundle is created." />
</Target>

CreateIpaDependsOn

Jest to punkt rozszerzenia kompilacji: deweloper może dodać dowolne obiekty docelowe do tej właściwości, aby wykonać te obiekty docelowe podczas tworzenia usługi IPA.

Dotyczy wszystkich platform, które tworzą archiwa IPA (obecnie systemy iOS i tvOS).

Przykład:

<PropertyGroup>
  <CreateIpaDependsOn>$(CreateIpaDependsOn);DoThisBeforeCreatingIPA</CreateIpaDependsOn>
</PropertyGroup>
<Target Name="DoThisBeforeCreatingIPA">
  <Exec Command="echo This is executed before the IPA is created." />
</Target>

UtwórzPakiet

Jeśli pakiet (.pkg) powinien zostać utworzony dla pakietu aplikacji na końcu kompilacji.

Dotyczy tylko projektów macOS i Mac Catalyst.

Zobacz BuildIpa for iOS and tvOS projects ( Kompilowanie projektów systemu iOS i tvOS).

Utworzone pakiety PKG są widoczne w grupie elementów ApplicationArtifact .

Device

Określa, które urządzenie przenośne lub symulator docelowy należy wybrać podczas korzystania dotnet run --device <Device> z programów docelowych MSBuild, które interakcjonują z urządzeniami (takimi jak Run, Install lub Uninstall).

Wartość może być dowolna, którą narzędzia wiersza polecenia simctl lub devicectl akceptują jako nazwę urządzenia; zazwyczaj jest to UDID lub nazwa urządzenia. Na przykład w przypadku urządzenia My iOS Device z identyfikatorem UDID 00001111-012301230123ABCDużyj wartości -p:Device="My iOS Device" lub -p:Device=00001111-012301230123ABCD.

Aby uzyskać więcej informacji na temat wyboru urządzenia, zobacz specyfikację wyboru urządzenia zestawu .NET SDK.

DeviceSpecificBuild

Jeśli kompilacja powinna być specyficzna dla wybranego urządzenia.

Dotyczy wszystkich platform obsługujących kompilacje specyficzne dla urządzenia (obecnie systemy iOS i tvOS).

DeviceSpecificIntermediateOutputPath

Ścieżka wyjściowa pośrednia do użycia, gdy są włączone kompilacje specyficzne dla urządzenia.

Dotyczy wszystkich platform obsługujących kompilacje specyficzne dla urządzenia (obecnie systemy iOS i tvOS).

DeviceSpecificOutputPath

Ścieżka wyjściowa używana w przypadku, gdy włączone są kompilacje specyficzne dla urządzenia.

Dotyczy wszystkich platform obsługujących kompilacje specyficzne dla urządzenia (obecnie systemy iOS i tvOS).

Adres diagnostyczny

Adres IP, na którym dotnet-dsrouter jest wykonywane. Jest to typowo 127.0.0.1 podczas profilowania w symulatorze, a także adres IP komputera, gdzie dotnet-dsrouter podczas profilowania na urządzeniu.

Jest to element adresu IP DiagnosticConfiguration.

Niejawnie ustawia wartość EnableDiagnostics na true.

Wartość domyślna to 127.0.0.1.

Konfiguracja diagnostyczna

Wartość podana przez dotnet-dsrouter dla DOTNET_DiagnosticPorts, taka jak:

  • 127.0.0.1:9000,suspend,connect
  • 127.0.0.1:9000,nosuspend,connect

Należy pamiętać, że znak , musi zostać zescapowany za pomocą %2c, jeśli zostanie przekazany w wierszu polecenia do dotnet build:

dotnet build -c Release -p:DiagnosticConfiguration=127.0.0.1:9000%2csuspend%2cconnect

Spowoduje to automatyczne ustawienie zmiennej DOTNET_DiagnosticPorts środowiskowej spakowanej wewnątrz aplikacji, tak aby zmienna środowiskowa została ustawiona podczas uruchamiania aplikacji.

Niejawnie ustawia wartość EnableDiagnostics na true.

Domyślne zachowanie polega na obliczaniu tej wartości z innych właściwości diagnostycznych (DiagnosticAddress, DiagnosticPort, DiagnosticListenMode i DiagnosticSuspend).

W przypadku ustawienia dowolny z innych właściwości diagnostycznych zostanie zignorowany.

DiagnosticListenMode

Wartość podana przez dotnet-dsrouter, taka jak connect lub listen, w elemencie trybu nasłuchiwania składnika DiagnosticConfiguration.

Niejawnie ustawia wartość EnableDiagnostics na true.

Wartość domyślna to listen.

DiagnosticPort

Wartość dostarczona przez dotnet-dsrouter, taka jak 9000, składnik portu DiagnosticConfiguration.

Niejawnie ustawia wartość EnableDiagnostics na true.

Wartość domyślna to 9000.

DiagnosticSuspend

Wartość określająca zachowanie uruchamiania podczas profilowania aplikacji.

Ustaw opcję na true wstrzymanie aplikacji podczas uruchamiania (oczekiwanie na nawiązanie połączenia z aplikacją przez serwer diagnostyczny) lub false uruchomienie aplikacji w zwykły sposób (i połączenie serwera diagnostycznego z aplikacją później).

suspend/nosuspend To odpowiada wartości w DiagnosticConfiguration".

Niejawnie ustawia wartość EnableDiagnostics na true.

Wartość domyślna to false.

DittoPath

Pełna ścieżka do ditto pliku wykonywalnego.

Domyślnym zachowaniem jest użycie elementu /usr/bin/ditto.

DynamicRegistrationSupported

Określa, czy rejestrator dynamiczny jest dostępny w czasie wykonywania (zgodnie z raportem ObjCRuntime.Runtime.DynamicRegistrationSupported).

Jeśli ta wartość nie zostanie określona, kompilacja obliczy wartość domyślną na podstawie tego, czy aplikacja potrzebuje dynamicznego rejestratora, i odpowiednio włączy przełącznik funkcji trimera ObjCRuntime.Runtime.DynamicRegistrationSupported (dzięki czemu trimmer może usunąć dynamiczny rejestrator, gdy nie jest potrzebny, co sprawia, że aplikacja jest mniejsza).

Ustaw tę właściwość na true lub false , aby zastąpić obliczoną wartość domyślną.

Usunięcie rejestratora dynamicznego wymaga rejestratora statycznego (Registrar=static lub Registrar=managed-static) i przycinania, więc ustawienie tej właściwości nie ma żadnego efektu (i kompilacja ostrzega), gdy te warunki nie zostaną spełnione.

EmbedOnDemandResources

Określa, gdzie pakiety zasobów zasobów na żądanie są umieszczane podczas pakowania aplikacji do dystrybucji. Ta właściwość nie włącza obsługi zasobów na żądanie (użyj parametru EnableOnDemandResources do tego) — ma wpływ tylko na sposób spakowania już oznakowanych pakietów zasobów.

Jest to właściwość ustawiona przez opcję "Osadź zasoby na żądanie w pakiecie aplikacji" w środowisku IDE. Obowiązuje tylko dla AdHoc dystrybucji:

  • true: pakiety zasobów są osadzone w .app bundlu wewnątrz pliku IPA i udostępniane lokalnie przez aplikację.
  • false: pakiety zasobów są pakowane oddzielnie (poza pakietem aplikacji), dzięki czemu mogą być przesyłane strumieniowo/hostowane (na przykład na serwerze internetowym).

W przypadku dystrybucji AppStore pakiety zasobów są zawsze umieszczane poza pakietem .app (do hostowania przez sklep App Store), niezależnie od tej właściwości.

Ta właściwość jest uwzględniana tylko podczas tworzenia pakietów IPA do dystrybucji (gdy BuildIpa jest true i typ dystrybucji jest AppStore lub AdHoc); nie ma wpływu na kompilację debugową symulatora lub urządzenia.

Domyślnie: prawda.

WłączPodpisywanieKodów

Jeśli podpisywanie kodu jest włączone.

Podpisywanie kodu jest domyślnie włączone dla wszystkich platform; Można to zastąpić tą właściwością.

EnableDefaultCodesignEntitlements (Włącz domyślne uprawnienia do podpisywania kodu)

Zobacz CodesignEntitlements.

Włącz zasoby na żądanie

Jeśli zasoby na żądanie są włączone.

Po włączeniu zasoby pakietu oznaczone metadanymi ResourceTags są umieszczane w pakietach zasobów na żądanie, zamiast być kopiowane bezpośrednio do pakietu aplikacji. Zasób jest otagowany w następujący sposób:

<ItemGroup>
  <BundleResource Update="Resources\MyResource.dat" ResourceTags="MyTag" />
</ItemGroup>

Użyj Update (nie Include), jeśli plik jest już częścią domyślnych zasobów projektu (na przykład wszystkie elementy w folderze Resources w systemie iOS, który jest automatycznie dołączany jako element BundleResource), w przeciwnym razie zasób zostanie dodany dwukrotnie, a pierwszeństwo będzie miała kopia bez tagu. W projekcie .NET MAUI można ustawić te same ResourceTags metadane w odpowiednim MauiAsset elemencie.

Ta właściwość włącza tylko zasoby na żądanie; nie kontroluje sposobu, w jaki pakiety zasobów są pakowane do dystrybucji — zobacz EmbedOnDemandResources .

Ustawienie domyślne: wartość false dla systemu macOS, prawda dla wszystkich innych platform.

WłączPodpisywaniePakietu

Jeśli .pkg, który został utworzony (jeśli CreatePackage został włączony), powinien zostać podpisany.

Dotyczy tylko systemów macOS i Mac Catalyst.

WłączDiagnostykę

Włącz składniki wymagane do działania diagnostyki (na przykład profilowanie).

Jest domyślnie włączona dla kompilacji debug (gdy jest włączona funkcja MtouchDebug lub MmpDebug), ale należy ją ręcznie włączyć przed profilowaniem kompilacji wersji produkcyjnej.

<PropertyGroup>
  <EnableDiagnostics>true</EnableDiagnostics>
</PropertyGroup>

Spowoduje to nieznaczne zwiększenie rozmiaru aplikacji.

Ma zastosowanie tylko w przypadku korzystania ze środowiska uruchomieniowego Mono (CoreCLR zawsze obsługuje diagnostykę, podczas gdy nativeAOT nigdy nie działa).

EnableSGenConc

Włącza tryb współbieżny dla garbage collectora SGen.

Dotyczy tylko systemów iOS, tvOS i Mac Catalyst (w przypadku braku użycia funkcji NativeAOT).

Ta właściwość ma wpływ tylko w przypadku korzystania ze środowiska uruchomieniowego Mono, a ostrzeżenie zostanie wyświetlone, jeśli zostanie ustawione, gdy nie jest używane środowisko uruchomieniowe Mono (na przykład w przypadku korzystania z CoreCLR).

EventSourceSupport

Gdy ustawiona jest wartość false, wyłącza obsługę EventSource platformy .NET z aplikacji z ograniczoną zawartością. Wyłączenie tej funkcji uniemożliwiłoby działanie narzędzi diagnostycznych platformy .NET, takich jak dotnet-counters, co jednak zmniejsza rozmiar aplikacji.

Wartość domyślna: ustaw na false, gdy Optimize jest ustawione na true (co jest wartością domyślną dla kompilacji Release), chyba że $(EnableDiagnostics) jest włączone.

GenerowanieManifestuAplikacji

Jeśli manifest aplikacji (Info.plist) powinien zostać wygenerowany.

Domyślnie: prawda.

GeneratedSourcesDir

Miejsce, w którym zapisywane są wygenerowane źródła przez generator.

GenerateTrustedPlatformAssemblies

Właściwość logiczna określająca, czy lista zestawów Trusted Platform Assemblies jest generowana w czasie kompilacji, a nie odnajdywana podczas uruchamiania aplikacji.

Wartością domyślną jest false dla kompilacji debugowania i true dla innych kompilacji.

GetApplicationArtifactsDependsOn

Właściwość rozdzielana średnikami, która może służyć do rozszerzania elementów docelowych GetApplicationArtifacts i Publish. Build jest obowiązkową zależnością składnika GetApplicationArtifacts; elementy docelowe MSBuild dodane do tej właściwości są wykonywane po zebraniu elementów @(ApplicationArtifact) przez kompilację platformy i zanim zwrócą je GetApplicationArtifacts lub Publish.

Kompilacje dla platform Apple wypełniają typowe metadane aplikacji udokumentowane dla elementu ApplicationArtifact zanim cele w tej właściwości zostaną wykonane. Cele rozszerzeń mogą aktualizować lub zastępować te metadane i powinny dodawać tylko nowe elementy podczas wprowadzania dodatkowych artefaktów.

Przykład:

<PropertyGroup>
  <GetApplicationArtifactsDependsOn>$(GetApplicationArtifactsDependsOn);AddApplicationArtifactMetadata</GetApplicationArtifactsDependsOn>
</PropertyGroup>

<Target Name="AddApplicationArtifactMetadata">
  <ItemGroup>
    <ApplicationArtifact Update="@(ApplicationArtifact)">
      <ApplicationTitle>$(ApplicationTitle)</ApplicationTitle>
    </ApplicationArtifact>
  </ItemGroup>
</Target>

HotReloadCompatibleBuild

Właściwość logiczna wskazująca, czy kompilacja musi pozostać zgodna z Przeładowywanie na gorąco. Gdy ustawiono wartość truenull, kompilacja unika modyfikowania zestawów użytkownika, aby pozostawały niezmienione bajt w bajt (co jest wymagane przez funkcję Przeładowywanie na gorąco). Spowoduje to wyłączenie kilku drobnych optymalizacji, ale nie wpłynie to na nic innego.

Wartość domyślna to true dla kompilacji debugowania i false w przeciwnym razie.

IBToolPath

Pełna ścieżka do ibtool narzędzia.

Domyślnym zachowaniem jest użycie elementu xcrun ibtool.

UwzględnijWszystkieIkonyAplikacji

Ustaw właściwość na true, IncludeAllAppIcons aby automatycznie uwzględniać wszystkie ikony aplikacji ze wszystkich katalogów zasobów w aplikacji.

Przykład:

<PropertyGroup>
    <IncludeAllAppIcons>true</IncludeAllAppIcons>
</PropertyGroup>

Zobacz również:

InlineClassGetHandle

Określa, czy system kompilacji zastępuje wywołania Class.GetHandle / Class.GetHandleIntrinsic środowiska uruchomieniowego bezpośrednimi odwołaniami natywnymi do klas Objective-C w czasie kompilacji.

Zobacz klasy Objective-C, aby zapoznać się z omówieniem.

Prawidłowe opcje to:

  • compatibility: wstawia wywołania Class.GetHandle tylko dla typów, których typ deklarujący jest zgodny z żądaną nazwą klasy Objective-C.
  • strict: Bezwarunkowo osadza wszystkie wywołania Class.GetHandle. Wymaga użycia rejestratora statycznego (a nie rejestratora dynamicznego).
  • (puste): wyłącza wbudowywanie wywołań Class.GetHandle.

Wartość domyślna:

  • .NET 11+: strict w przypadku użycia NativeAOT (PublishAot=true), compatibility w przeciwnym razie.
  • .NET 10 i starszych: nie ustawiono (wyłączone).

Przykład:

<PropertyGroup>
    <InlineClassGetHandle>compatibility</InlineClassGetHandle>
</PropertyGroup>

Zachowanie niestandardowe dla określonych klas Objective-C można ustawić przy użyciu grupy elementów ReferenceNativeSymbol :

<ItemGroup>
    <ReferenceNativeSymbol SymbolMode="Ignore" SymbolType="ObjectiveCClass" Include="SomeClassName" />
</ItemGroup>

InlineDlfcnMethods

Określa, czy system kompilacji zastępuje wywołania metod ObjCRuntime.Dlfcn w czasie wykonywania bezpośrednimi odwołaniami do symboli natywnych na etapie kompilacji, eliminując narzut związany z dlsym w czasie wykonywania.

Prawidłowe opcje to:

  • compatibility: Tylko użycie symboli wbudowanych wspieranych przez [Field] atrybuty. Jest to bardziej zachowawcze i pozwala uniknąć błędów linkowania dla symboli, które nie istnieją w czasie kompilacji.
  • strict: Osadza bezpośrednio wywołania metody dlfcn i tworzy natywne odwołania dla wszystkich symboli. Jest to bardziej agresywne i może powodować błędy linków, jeśli nie istnieją przywoływne symbole natywne.
  • (puste): wyłącza tworzenie podwładnych wywołań metod dlfcn.

Wartość domyślna:

  • .NET 11+: strict w przypadku użycia NativeAOT (PublishAot=true), compatibility w przeciwnym razie.
  • .NET 10 i starszych: nie ustawiono (wyłączone).

Przykład:

<PropertyGroup>
    <InlineDlfcnMethods>compatibility</InlineDlfcnMethods>
</PropertyGroup>

Zachowanie niestandardowe dla określonych symboli można ustawić przy użyciu grupy elementów ReferenceNativeSymbol :

<ItemGroup>
    <ReferenceNativeSymbol SymbolMode="Ignore" SymbolType="Field" Include="InexistentSymbol" />
</ItemGroup>

iOSMinimumVersion

Określa minimalną wersję systemu iOS, w ramach których aplikacja może działać.

Dotyczy systemu iOS; Ustawienie tej wartości spowoduje ustawienie SupportedOSPlatformVersion dla projektów systemu iOS (tylko).

IPhoneResourcePrefix

Katalog, w którym są przechowywane zasoby (ten prefiks zostanie usunięty podczas kopiowania zasobów do pakietu aplikacji).

Dotyczy projektów iOS, tvOS i Mac Catalyst.

Rozważ użycie ujednoliconej właściwości AppBundleResourcePrefix .

Zobacz także MonoMacResourcePrefix i XamMacResourcePrefix.

IpaIncludeArtwork

Jeśli grafika powinna zostać uwzględniona w IPA.

Dotyczy tylko projektów systemów iOS i tvOS.

IpaIncludeSymbols

Jeśli symbole aplikacji powinny być uwzględnione w pakiecie IPA, w katalogu Symbols, którego oczekuje Apple. Dzięki temu program App Store Connect (i organizator Xcode) automatycznie symbolikuje raporty o awariach dla aplikacji.

Symbole to pliki firmy Apple *.symbols generowane na podstawie katalogów dSYM kompilacji przy użyciu xcrun symbols (same katalogi dSYM nie są osadzone w pliku IPA).

Domyślna wartość to true. Ustaw ją na false, aby zrezygnować. Ta właściwość nie ma wpływu, chyba że jest tworzone IPA (zobacz BuildIpa).

Dotyczy tylko projektów systemów iOS i tvOS.

IpaPackageName

Określa nazwę wynikowego pliku ipa (bez ścieżki) podczas tworzenia pakietu IPA (zobacz BuildIpa). Parametr IpaPackagePath zastąpi tę wartość.

Dotyczy tylko projektów systemów iOS i tvOS.

IpaPackageDir

Określa katalog wynikowego pliku ipa podczas tworzenia pakietu IPA (zobacz BuildIpa). Parametr IpaPackagePath zastąpi tę wartość.

Dotyczy tylko projektów systemów iOS i tvOS.

IpaPackagePath

Określa ścieżkę do wynikowego pliku ipa podczas tworzenia pakietu IPA (zobacz BuildIpa).

Dotyczy tylko projektów systemów iOS i tvOS.

Wynikowy plik IPA jest uwidoczniony w grupie elementów ApplicationArtifact.

IsAppExtension

Jeśli projekt jest rozszerzeniem aplikacji.

IsBindingProject

Jeśli projekt jest wiążącym projektem.

IsXPCService

Jeśli rozszerzenie systemu macOS jest usługą xpc.

Dotyczy tylko projektów systemu macOS.

Tryb Łączenia

Określa tryb łącza dla projektu (NoneSdkOnlylub Full).

Dotyczy projektów systemu macOS, ale ta właściwość jest przestarzała, zamiast tego użyj funkcji TrimMode .

Zobacz też MtouchLink.

LinkWithSwiftSystemLibraries

Jeśli ustawiono na true, kompilacja poinformuje natywnego konsolidatora, gdzie można znaleźć systemowe biblioteki Swift.

Jest to przydatne, gdy biblioteka natywna w jakiś sposób korzysta ze Swift, w takim przypadku natywny linker musi wiedzieć, gdzie znaleźć systemowe biblioteki Swift.

Obecnie oznacza to, że te argumenty zostaną przekazane do linkera systemowego.

  • -L/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/swift/[platform]
  • -L/Applications/Xcode.app/Contents/Developer/Platforms/[platform].platform/Developer/SDKs/[platform].sdk/usr/lib/swift

Dokładny zestaw argumentów może ulec zmianie w przyszłości.

MacCatalystMinimumVersion

Określa minimalną wersję narzędzia Mac Catalyst (iOS), na których może działać aplikacja.

Dotyczy Mac Catalyst; ustawienie tej wartości spowoduje ustawienie SupportedOSPlatformVersion tylko dla projektów Mac Catalyst.

MaciOSPrepareForBuildDependsOn

Właściwość rozdzielana średnikami, która może służyć do rozszerzania procesu kompilacji. Obiekty docelowe programu MSBuild dodane do tej właściwości będą wykonywane na wczesnym etapie kompilacji zarówno dla typów projektów aplikacji, jak i biblioteki. Ta właściwość jest domyślnie pusta.

Przykład:

<PropertyGroup>
  <MaciOSPrepareForBuildDependsOn>$(MaciOSPrepareForBuildDependsOn);MyCustomTarget</MaciOSPrepareForBuildDependsOn>
</PropertyGroup>

<Target Name="MyCustomTarget" >
  <Message Text="Running target: 'MyCustomTarget'" Importance="high"  />
</Target>

Ta właściwość została wprowadzona na platformie .NET 9.

macOSMinimumVersion

Określa minimalną wersję systemu macOS, w ramach których aplikacja może działać.

Dotyczy systemu macOS; ustawienie tej wartości spowoduje ustawienie SupportedOSPlatformVersion dla projektów systemu macOS (tylko).

MacOSXSdkVersion

Wersja zestawu SDK systemu macOS do użycia na potrzeby kompilacji.

Ustawienie domyślne: automatycznie wykryte zgodnie z domyślną wersją dostarczoną z wybranym Xcode.

Zobacz również MtouchSdkVersion.

Tryb zarządzania wyjątkami Marshal

Wybierz sposób obsługi wyjątków zarządzanych podczas napotkania ramki natywnej podczas odwijania stosu podczas przetwarzania wyjątku zarządzanego.

Prawidłowe wartości:

  • default: Obecnie to jest throwobjectivecexception.
  • unwindnativecode: Nie jest to dostępne w przypadku korzystania ze środowiska uruchomieniowego CoreCLR.
  • throwobjectivecexception: Przechwyć wyjątek zarządzany i przekonwertuj go na wyjątek Objective-C.
  • abort: przerwać proces.
  • disable: Wyłącz przechwytywanie wyjątków zarządzanych. W przypadku MonoVM jest to odpowiednik unwindnativecode, dla CoreCLR jest to odpowiednik abort.

Aby uzyskać więcej informacji, zobacz Marshaling wyjątków i MarshalObjectiveCExceptionMode.

MarshalObjectiveCExceptionMode

Wybierz metodę obsługi wyjątków Objective-C, gdy napotkasz zarządzaną ramkę w trakcie odwijania stosu przy przetwarzaniu wyjątku Objective-C.

Prawidłowe wartości:

  • default: Obecnie to jest throwmanagedexception.
  • unwindmanagedcode: Nie jest to dostępne w przypadku korzystania ze środowiska uruchomieniowego CoreCLR.
  • throwmanagedexception: Przechwyć wyjątek Objective-C i przekonwertuj go na wyjątek zarządzany.
  • abort: przerwać proces.
  • disable: Wyłącz przechwytywanie wszystkich wyjątków typu Objective-C.

Aby uzyskać więcej informacji, zobacz Marshaling wyjątków i MarshalManagedExceptionMode.

MdimportPath

Pełna ścieżka do mdimport narzędzia.

Domyślnym zachowaniem jest użycie elementu xcrun mdimport.

MetalLibPath

Pełna ścieżka do metallib narzędzia (Metal Linker).

Domyślnym zachowaniem jest użycie elementu xcrun metallib.

MetalPath

Pełna ścieżka do kompilatora Metal.

Domyślnym zachowaniem jest użycie elementu xcrun metal.

MetricsSupport

Gdy ustawiona jest wartość false, wyłącza obsługę metryk platformy .NET w zredukowanych aplikacjach. Wyłączenie tej funkcji uniemożliwiłoby działanie takich interfejsów API, jak System.Diagnostics.Metrics, ale z korzyścią dla zmniejszenia rozmiaru aplikacji.

Wartość domyślna: ustaw na false, gdy Optimize jest ustawione na true (co jest wartością domyślną dla kompilacji Release), chyba że $(EnableDiagnostics) jest włączone.

MmpDebug

Włącza tryb debugowania na potrzeby tworzenia pakietu aplikacji.

Dotyczy tylko projektów systemu macOS.

Zobacz również MtouchDebug.

Agresywne Przycinanie Atrybutów w Trybie Mobilnym

Ta właściwość określa, czy należy usunąć liczne atrybuty, które są niezwykle rzadko potrzebne w czasie wykonywania.

Ta opcja jest domyślnie włączona.

Należy pamiętać, że chociaż usunięte atrybuty są bardzo rzadko używane, jest technicznie możliwe, że usunięcie może zmienić zachowanie środowiska uruchomieniowego.

Na przykład system.Xml.Serialization zachowuje się inaczej, jeśli konstruktor ma [Obsolete] atrybut (który jest jednym z atrybutów, które są usuwane). Jest to wystarczająco niskie ryzyko, aby uzasadnić usunięcie tych atrybutów domyślnie z powodu oszczędności rozmiaru.

Lista usuniętych atrybutów może ulec zmianie w przyszłości, ale w momencie pisania tego tekstu (dla platformy .NET 10) są to atrybuty:

  • Microsoft.CodeAnalysis.EmbeddedAttribute
  • System.CLSCompliantAttribute
  • System.CodeDom.Compiler.GeneratedCodeAttribute
  • System.ComponentModel.EditorBrowsableAttribute
  • System.Diagnostics.CodeAnalysis.DoesNotReturnAttribute
  • System.Diagnostics.CodeAnalysis.DoesNotReturnIfAttribute
  • System.Diagnostics.CodeAnalysis.DynamicallyAccessedMembersAttribute
  • System.Diagnostics.CodeAnalysis.ExcludeFromCodeCoverageAttribute
  • System.Diagnostics.CodeAnalysis.ExperimentalAttribute
  • System.Diagnostics.CodeAnalysis.FeatureGuardAttribute
  • System.Diagnostics.CodeAnalysis.FeatureSwitchDefinitionAttribute
  • System.Diagnostics.CodeAnalysis.MemberNotNullAttribute
  • System.Diagnostics.CodeAnalysis.MemberNotNullWhenAttribute
  • System.Diagnostics.CodeAnalysis.NotNullIfNotNullAttribute
  • System.Diagnostics.CodeAnalysis.NotNullWhenAttribute
  • System.Diagnostics.CodeAnalysis.RequiresAssemblyFilesAttribute
  • System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute
  • System.Diagnostics.CodeAnalysis.RequiresUnreferencedCodeAttribute
  • System.Diagnostics.CodeAnalysis.StringSyntaxAttribute
  • System.Diagnostics.CodeAnalysis.SuppressMessageAttribute
  • System.Diagnostics.CodeAnalysis.UnconditionalSuppressMessageAttribute
  • System.Diagnostics.CodeAnalysis.UnscopedRefAttribute
  • System.ObsoleteAttribute
  • System.Reflection.AssemblyCompanyAttribute
  • System.Reflection.AssemblyConfigurationAttribute
  • System.Reflection.AssemblyCopyrightAttribute
  • System.Reflection.AssemblyDefaultAliasAttribute
  • System.Reflection.AssemblyDescriptionAttribute
  • System.Reflection.AssemblyMetadataAttribute
  • System.Reflection.AssemblyProductAttribute
  • System.Reflection.AssemblyTitleAttribute
  • System.Runtime.CompilerServices.AsyncMethodBuilderAttribute
  • System.Runtime.CompilerServices.CallerArgumentExpressionAttribute
  • System.Runtime.CompilerServices.CallerFilePathAttribute
  • System.Runtime.CompilerServices.CallerLineNumberAttribute
  • System.Runtime.CompilerServices.CallerMemberNameAttribute
  • System.Runtime.CompilerServices.CompilerFeatureRequiredAttribute
  • System.Runtime.CompilerServices.CompilerGlobalScopeAttribute
  • System.Runtime.CompilerServices.EnumeratorCancellationAttribute
  • System.Runtime.CompilerServices.ExtensionAttribute
  • System.Runtime.CompilerServices.InterpolatedStringHandlerArgumentAttribute
  • System.Runtime.CompilerServices.InterpolatedStringHandlerAttribute
  • System.Runtime.CompilerServices.IntrinsicAttribute
  • System.Runtime.CompilerServices.IsReadOnlyAttribute
  • System.Runtime.CompilerServices.IsUnmanagedAttribute
  • System.Runtime.CompilerServices.NativeIntegerAttribute
  • System.Runtime.CompilerServices.RefSafetyRulesAttribute
  • System.Runtime.CompilerServices.ScopedRefAttribute
  • System.Runtime.CompilerServices.SkipLocalsInitAttribute
  • System.Runtime.CompilerServices.TupleElementNamesAttribute
  • System.Runtime.InteropServices.LibraryImportAttribute
  • System.Runtime.InteropServices.Marshalling.ContiguousCollectionMarshallerAttribute
  • System.Runtime.InteropServices.Marshalling.CustomMarshallerAttribute
  • System.Runtime.InteropServices.Marshalling.MarshalUsingAttribute
  • System.Runtime.InteropServices.Marshalling.NativeMarshallingAttribute
  • System.Runtime.Versioning.NonVersionableAttribute
  • System.Runtime.Versioning.ObsoletedOSPlatformAttribute
  • System.Runtime.Versioning.RequiresPreviewFeaturesAttribute
  • System.Runtime.Versioning.SupportedOSPlatformAttribute
  • System.Runtime.Versioning.SupportedOSPlatformGuardAttribute
  • System.Runtime.Versioning.TargetPlatformAttribute
  • System.Runtime.Versioning.UnsupportedOSPlatformAttribute
  • System.Runtime.Versioning.UnsupportedOSPlatformGuardAttribute

Ta właściwość została wprowadzona na platformie .NET 10.

MonoBundlingExtraArgs

Dodatkowe argumenty określające sposób tworzenia pakietu aplikacji.

Dotyczy tylko projektów systemu macOS.

Ta właściwość jest przestarzała, zamiast tego użyj polecenia AppBundleExtraOptions .

MonoMacResourcePrefix

Katalog, w którym są przechowywane zasoby (ten prefiks zostanie usunięty podczas kopiowania zasobów do pakietu aplikacji).

Dotyczy tylko projektów systemu macOS.

Rozważ użycie ujednoliconej właściwości AppBundleResourcePrefix .

Zobacz również IPhoneResourcePrefix i XamMacResourcePrefix.

MonoUseCompressedInterfaceBitmap

Dzięki temu środowisko uruchomieniowe Mono będzie używać skompresowanej wersji map bitowych interfejsu (mapy bitowe interfejsu są używane do określania, czy określone typy implementują dany interfejs).

Te mapy bitowe mogą używać znacznej ilości pamięci w czasie wykonywania, w szczególności w przypadku aplikacji, które mają znaczną ilość interfejsów.

To ustawienie jest domyślnie wyłączone, ale można je włączyć w ten sposób, co spowoduje zmniejszenie ilości pamięci używanej w czasie wykonywania:

<PropertyGroup>
    <MonoUseCompressedInterfaceBitmap>true</MonoUseCompressedInterfaceBitmap>
</PropertyGroup>

Wadą jest to, że kontrole typów (obj is SomeInterface) będą wolniejsze.

Ma zastosowanie tylko w przypadku korzystania ze środowiska uruchomieniowego Mono. Ostrzeżenie zostanie wyświetlone, jeśli zostanie ustawione, gdy nie jest używane środowisko uruchomieniowe Mono (na przykład w przypadku korzystania z CoreCLR).

MtouchDebug

Włącza tryb debugowania na potrzeby tworzenia pakietu aplikacji.

Dotyczy projektów iOS, tvOS i Mac Catalyst.

Zobacz też MmpDebug.

MtouchEnableSGenConc

Włącza tryb współbieżny dla garbage collectora SGen.

Dotyczy tylko systemów iOS, tvOS i Mac Catalyst, gdy nie używasz funkcji NativeAOT.

Ta właściwość jest przestarzała, zamiast tego użyj polecenia EnableSGenConc .

Ta właściwość ma wpływ tylko w przypadku korzystania ze środowiska uruchomieniowego Mono, a ostrzeżenie zostanie wyświetlone, jeśli zostanie ustawione, gdy nie jest używane środowisko uruchomieniowe Mono (na przykład w przypadku korzystania z CoreCLR).

MtouchExtraArgs

Dodatkowe argumenty określające sposób tworzenia pakietu aplikacji.

Dotyczy tylko projektów iOS, tvOS i Mac Catalyst.

Ta właściwość jest przestarzała, zamiast tego użyj polecenia AppBundleExtraOptions .

MtouchInterpreter

Włącza interpreter i opcjonalnie przyjmuje rozdzieloną przecinkami listę zestawów do interpretacji (jeśli cały prefiks jest poprzedzony znakiem minus, zestaw zostanie skompilowany w trybie AOT). Parametr "all" może służyć do określania wszystkich zestawów. Ten argument można określić wiele razy.

Przykład:

<PropertyGroup>
  <!-- interpret all assemblies -->
  <MtouchInterpreter>all</MtouchInterpreter>

  <!-- AOT-compile all assemblies, except System.dll, which will be interpreted. -->
  <MtouchInterpreter>System</MtouchInterpreter>

  <!-- interpret all assemblies, except System.Core.dll, which will be AOT-compiled. -->
  <MtouchInterpreter>all,-System.Core</MtouchInterpreter>
</PropertyGroup>

Skrót dla MtouchInterpreter to ustawienie UseInterpreter=true, co jest równoważne MtouchInterpreter=all.

Jeśli zarówno UseInterpreter jak i MtouchInterpreter są ustawione, wartość MtouchInterpreter ma pierwszeństwo.

Dotyczy aplikacji dla systemów iOS, tvOS i Mac Catalyst (kiedy nie używa się funkcji NativeAOT).

Domyślne zachowanie polega na tym, że interpreter nie jest włączony.

Uwaga / Notatka

Domyślne ustawienie dla konfiguracji UseInterpreter=true jest zmieniane przez program MAUI na "Debug".

Ta właściwość ma wpływ tylko w przypadku korzystania ze środowiska uruchomieniowego Mono, a ostrzeżenie zostanie wyświetlone, jeśli zostanie ustawione, gdy nie jest używane środowisko uruchomieniowe Mono (na przykład w przypadku korzystania z CoreCLR).

Określa tryb linku dla projektu (None, SdkOnly, Full).

Dotyczy projektów z systemami iOS, tvOS i Mac Catalyst, ale ta właściwość jest przestarzała, zamiast tego należy użyć funkcji TrimMode .

Zobacz też LinkMode.

MtouchSdkVersion

Wersja zestawu SDK systemu iOS lub tvOS do użycia na potrzeby kompilacji.

Ustawienie domyślne: automatycznie wykryte zgodnie z domyślną wersją dostarczoną z wybranym Xcode.

Zobacz też MacOSXSdkVersion.

MtouchUseLlvm

Właściwość logiczna określająca, czy kompilacja AOT powinna być wykonywana przy użyciu LLVM.

Dotyczy projektów iOS, tvOS i Mac Catalyst.

Wartość domyślna:

  • W systemach iOS i tvOS: włączono obsługę kompilacji wydania (gdzie Configuration="Release").
  • Na Komputerze Mac Catalyst: nigdy nie jest domyślnie włączony.

Ta właściwość ma wpływ tylko w przypadku korzystania ze środowiska uruchomieniowego Mono, a ostrzeżenie zostanie wyświetlone, jeśli zostanie ustawione, gdy nie jest używane środowisko uruchomieniowe Mono (na przykład w przypadku korzystania z CoreCLR).

NoBindingEmbedding

Warning

Ustawienie tej właściwości na false jest obecnie przestarzałe i spowoduje wygenerowanie błędu kompilacji w .NET 12+.

Właściwość logiczna określająca, czy biblioteki natywne w projektach wiążących powinny być osadzone w zarządzanym zestawie, czy umieszczone w katalogu obok zarządzanego zestawu.

Wartość domyślna to true (co oznacza, że biblioteki natywne nie zostaną osadzone w zestawie zarządzanym).

Uwaga / Notatka

Xcframeworks nie będą działać poprawnie, jeśli są osadzone wewnątrz zestawu zarządzanego (jeśli ta właściwość nie jest true).

NoDSymUtil

Właściwość logiczna określająca, czy należy wyłączyć generowanie plików .dSYM.

Wartość domyślna:

  • true dla systemów iOS i tvOS podczas kompilowania dla symulatora.
  • true dla systemów macOS i Mac Catalyst, chyba że tworzysz archiwum (ArchiveOnBuild=true) lub używasz Native AOT.

Oznacza to, że archiwum .dSYM zostanie wygenerowane w następujących przypadkach (domyślnie):

  • W systemach iOS i tvOS podczas kompilowania dla urządzenia.
  • W systemach macOS i Mac Catalyst podczas tworzenia archiwum (ArchiveOnBuild=true) lub podczas korzystania z Native AOT.

NoSymbolStrip

Właściwość logiczna określająca, czy symbole debugowania są usuwane z aplikacji w czasie kompilacji.

Domyślne zachowanie polega na zachowaniu symboli debugowania dla:

  • Debug kompilacje dla platform stacjonarnych.
  • Wersje symulatora na urządzenia mobilne.

Przykład przechowywania symboli debugowania:

<PropertyGroup>
  <NoSymbolStrip>true</NoSymbolStrip>
</PropertyGroup>

OnDemandResourcesInitialInstallTags

Właściwość ciągu określająca początkowe tagi instalacji dla zasobów na żądanie.

OnDemandResourcesPrefetchOrder

Właściwość ciągu określająca kolejność wstępnego pobierania dla zasobów na żądanie.

URL zasobów na żądanie

Właściwość tekstowa określająca adres URL zasobu dla zasobów dostępnych na żądanie.

Optymalizuj PNG

Właściwość logiczna określająca, czy obrazy png powinny być zoptymalizowane.

OptymalizacjaObrazówPngZależyOd

Jest to punkt rozszerzenia kompilacji: deweloper może dodać dowolne obiekty docelowe do tej właściwości, aby wykonać te obiekty docelowe przed zoptymalizowaniem jakichkolwiek obrazów png.

Przykład:

<PropertyGroup>
  <OptimizePngImagesDependsOn>$(OptimizePngImagesDependsOn);MyCustomTarget</OptimizePngImagesDependsOn>
</PropertyGroup>

<Target Name="MyCustomTarget" >
  <Message Text="Running target: 'MyCustomTarget'" Importance="high"  />
</Target>

OptymalizujListyWłaściwości

Właściwość logiczna określająca, czy listy właściwości (plisty) powinny być zoptymalizowane.

OptimizePropertyListsZależyOd

Jest to punkt rozszerzenia kompilacji: deweloper może dodać dowolne obiekty docelowe do tej właściwości, aby wykonać te obiekty docelowe przed zoptymalizowaniem list właściwości (plists).

Przykład:

<PropertyGroup>
  <OptimizePropertyListsDependsOn>$(OptimizePropertyListsDependsOn);MyCustomTarget</OptimizePropertyListsDependsOn>
</PropertyGroup>

<Target Name="MyCustomTarget" >
  <Message Text="Running target: 'MyCustomTarget'" Importance="high"  />
</Target>

KluczPodpisuPakietu

Określa klucz podpisywania kodu, aby podpisać pakiet podczas tworzenia .pkg dla projektu macOS i Mac Catalyst.

Dotyczy tylko aplikacji macOS i Mac Catalyst.

PackagingExtraArgs

Określa wszelkie dodatkowe argumenty, które mają być przekazywane do narzędzia "productbuild" podczas tworzenia .pkg dla projektu macOS i Mac Catalyst.

Dotyczy tylko aplikacji macOS i Mac Catalyst.

PkgPackagePath

Określa ścieżkę do wynikowego pliku .pkg podczas tworzenia pakietu (zobacz CreatePackage).

Dotyczy tylko aplikacji macOS i Mac Catalyst.

Wynikowy element PKG jest udostępniany w grupie elementów ApplicationArtifact.

PlutilPath

Pełna ścieżka do plutil narzędzia wiersza polecenia.

Domyślnym zachowaniem jest użycie elementu xcrun plutil.

PngCrushPath

Pełna ścieżka do pngcrush narzędzia wiersza polecenia.

Domyślnym zachowaniem jest użycie elementu xcrun pngcrush.

ProcessEnums

Właściwość logiczna określająca, czy wyliczenia powinny być przetwarzane jako definicja interfejsu API w projektach powiązań.

ProductBuildPath

Pełna ścieżka do productbuild narzędzia.

Domyślnym zachowaniem jest użycie elementu xcrun productbuild.

Definicja Produktu

Szablon definicji produktu (.plist) do użycia podczas tworzenia definicji produktu do przekazania do narzędzia kompilacji produktu podczas tworzenia pakietów (.pkg).

Dotyczy tylko aplikacji macOS i Mac Catalyst.

RecommendedXcodeVersion

Jest to wersja programu Xcode zalecana do użycia z tą wersją platformy .NET dla systemów iOS, tvOS, macOS i Mac Catalyst.

Jest to wersja programu Xcode, względem której kompilacja jest walidowana (zobacz ValidateXcodeVersion); użycie innej wersji może spowodować problemy w dalszej części procesu kompilacji.

Ta właściwość jest tylko do odczytu: jest obliczana przez SDK i nie powinna być ustawiana w plikach projektu.

Zalecaną wersję programu Xcode dla projektu można uzyskać, uruchamiając polecenie:

$ dotnet build -getProperty:RecommendedXcodeVersion myProject.csproj
26.6

Uwaga: numer wersji może zawierać więcej niż 2 składniki (na przykład „26.6.1”). Podczas walidacji zainstalowanej wersji programu Xcode brane są pod uwagę tylko dwie pierwsze składowe (główna i pomocnicza).

ReferenceNativeSymbol

Zobacz ReferenceNativeSymbol

RequirePołączenieZAtrybutemDlaWyszukiwaniaKlasyObjectiveC

Automatycznie przeskanujemy wszystkie biblioteki pod kątem klas zarządzanych mapujących na istniejące klasy Objective-C, a następnie w czasie kompilacji utworzymy natywne odwołanie dla tych klas Objective-C.

W ten sposób natywny linker nie usunie tych klas Objective-C, myśląc, że nie są używane.

Może to jednak spowodować problem, jeśli klasa zarządzana odwołuje się do klasy Objective-C, która nie istnieje. Właściwą poprawką jest usunięcie takich klas zarządzanych z kompilacji, ale może to być kłopotliwe, w szczególności jeśli klasa zarządzana pochodzi z odwołania binarnego (takiego jak NuGet).

W takich przypadkach można ustawić właściwość RequireLinkWithAttributeForObjectiveCClassSearch na true , aby skanować biblioteki tylko za pomocą atrybutu [LinkWith] dla klas Objective-C:

<PropertyGroup>
  <RequireLinkWithAttributeForObjectiveCClassSearch>true</RequireLinkWithAttributeForObjectiveCClassSearch>
</PropertyGroup>

ResolveResourceItemsRelativeToProject

Ta właściwość określa, czy elementy Content i BundleResource mają nazwy logiczne obliczone względem pliku projektu lub względem pliku, który je zadeklarował.

W przypadku ustawienia wartości trueścieżki elementów są zawsze obliczane względem pliku projektu. To rozwiązuje problemy polegające na tym, że zestawy SDK (takie jak zestaw SDK Razor) dodają elementy zawartości z katalogu odległego od projektu, generując nieprawidłowe ścieżki, które są odrzucane w czasie kompilacji.

Po ustawieniu wartości na false (wartość domyślna dla wersji przed .NET 12) zachowanie starszej wersji jest zachowywane: ścieżki są obliczane względem pliku, który zadeklarował element.

Począwszy od platformy .NET 13 ta właściwość jest trwale włączona, a ustawienie jej na false spowoduje błąd kompilacji.

wersja .NET Domyślny
<.NET 12 false (wyrażenie zgody)
.NET 12 true (rezygnacja z subskrypcji)
.NET 13+ true (trwale włączone)
<PropertyGroup>
  <ResolveResourceItemsRelativeToProject>true</ResolveResourceItemsRelativeToProject>
</PropertyGroup>

RunWithOpen

Ta właściwość określa, czy aplikacje są uruchamiane przy użyciu open polecenia w systemie macOS, czy też czy plik wykonywalny aplikacji jest wykonywany bezpośrednio.

Dotyczy to tylko aplikacji macOS i Mac Catalyst.

Domyślna wartość to true. W tym trybie aplikacja zostanie uruchomiona przez macOS tak jak każda inna aplikacja UI, wszystkie dane wyjściowe stdout/stderr zostaną zignorowane przez macOS, a polecenie dotnet run zakończy się natychmiast po uruchomieniu aplikacji.

Jeśli ustawiono false, wszystkie dane outputu stdout/stderr zostaną wyświetlone w bieżącym terminalu, a dotnet run polecenie nie zostanie zakończone, dopóki aplikacja się nie zakończy.

Następujące właściwości mogą służyć do konfigurowania zachowania w przypadku ustawienia wartości true (tj. przy użyciu open polecenia ):

OtwórzNowąInstancję

Jeśli nowe wystąpienie zostanie otwarte, jeśli aplikacja jest już uruchomiona (domyślnie to false).

Spowoduje to przekazanie -n do open, jeśli ustawiono na true.

Przykład:

$ dotnet run -p:OpenNewInstance=false

OpenWaitForExit

Jeśli polecenie "dotnet run" powinno poczekać, aż aplikacja zakończy działanie (wartość domyślna to false).

Spowoduje to przekazanie -W do open, jeśli ustawiono na true.

Uwaga: właściwość WaitForExit ma pierwszeństwo przed tą właściwością.

Przykład:

$ dotnet run -p:OpenWaitForExit=true

OpenArguments

Ta właściwość może służyć do przekazywania dodatkowych argumentów do open polecenia.

Przykład (aby ustawić zmienne środowiskowe):

$ dotnet run -p:OpenArguments="--env VARIABLE1=VALUE1 --env VARIABLE2=value2"

Przykład (aby przekierować stdout i stderr do pliku):

$ dotnet run -p:OpenArguments="--stdout /tmp/stdout.txt --stderr /tmp/stderr.txt"

Uruchom polecenie man open , aby wyświetlić listę wszystkich akceptowanych opcji open .

StandardOutputPath

Tej właściwości można użyć do przekierowania danych wyjściowych stdout z aplikacji do pliku.

Dotyczy to wszystkich platform (macOS, Mac Catalyst, iOS i tvOS).

Przykład zapisu w pliku:

$ dotnet run -p:StandardOutputPath=stdout.txt

Przykład pisania do bieżącego terminala.

$ dotnet run -p:StandardOutputPath=$(tty)
[... Console.WriteLine output from app ...]

Uwaga: w przypadku aplikacji macOS i Mac Catalyst używających polecenia open można to również wykonać, przekazując --stdout ... przy użyciu właściwości OpenArguments.

StandardErrorPath

Tej właściwości można użyć do przekierowania danych wyjściowych stderr z aplikacji do pliku.

Dotyczy to wszystkich platform (macOS, Mac Catalyst, iOS i tvOS).

Przykład zapisu w pliku:

$ dotnet run -p:StandardErrorPath=stderr.txt

Przykład pisania do bieżącego terminala.

$ dotnet run -p:StandardErrorPath=$(tty)
[... Console.Error.WriteLine output from app ...]

Uwaga: w przypadku aplikacji macOS i Mac Catalyst używających polecenia open można to również wykonać, przekazując --stderr ... przy użyciu właściwości OpenArguments.

StandardInputPath

Tej właściwości można użyć do przekierowania danych wejściowych stdin do aplikacji z pliku.

Przykład:

$ dotnet run -p:StandardInputPath=stdin.txt

Uwaga: można to również zrobić, przekazując --stdin ... przy użyciu właściwości OpenArguments .

WaitForExit

Jeśli polecenie "dotnet run" powinno poczekać na zakończenie działania aplikacji przed powrotem (domyślnie ustawiono true dla aplikacji systemów iOS i tvOS oraz false dla aplikacji macOS i Mac Catalyst).

Dotyczy to wszystkich platform (macOS, Mac Catalyst, iOS i tvOS).

W przypadku aplikacji macOS i Mac Catalyst ta właściwość ma pierwszeństwo przed właściwością OpenWaitForExit .

Przykład:

$ dotnet run -p:WaitForExit=true

SdkIsDesktop

Ta właściwość jest tylko do odczytu (jej ustawienie nie będzie miało żadnego efektu) i określa, czy tworzymy kompilację dla platformy desktopowej (macOS lub Mac Catalyst).

Ta właściwość jest true wtedy, gdy platforma docelowa jest macOS lub Mac Catalyst i nie jest ustawiona dla kompilacji systemu iOS lub tvOS.

Podobnie jak SdkIsSimulator, ta właściwość jest ustawiana dopiero po przetworzeniu importów i właściwości.

SdkIsDevice

Ta właściwość jest tylko do odczytu (jej ustawienie nie wywoła żadnego skutku) i określa, czy kompilacja jest przeznaczona dla urządzenia.

Ta właściwość ma wartość true tylko podczas kompilowania dla urządzenia z systemem iOS lub tvOS (tj. gdy SdkIsSimulator nie jest true, a platforma to iOS lub tvOS). Nie jest ustawiony w kompilacjach macOS ani Mac Catalyst.

Podobnie jak SdkIsSimulator, ta właściwość jest ustawiana dopiero po przetworzeniu importów i właściwości.

SdkIsMobile

Ta właściwość jest tylko do odczytu (jej ustawienie nie wywoła żadnego efektu) i określa, czy kompilujemy dla platformy mobilnej (iOS lub tvOS).

Ta właściwość ma wartość true, gdy platformą docelową jest iOS lub tvOS, i nie jest ustawiana w kompilacjach dla systemów macOS i Mac Catalyst.

Podobnie jak SdkIsSimulator, ta właściwość jest ustawiana dopiero po przetworzeniu importów i właściwości.

SdkIsSimulator

Ta właściwość jest właściwością tylko do odczytu (ustawienie nie będzie miało żadnego efektu), która określa, czy kompilujemy symulator, czy nie.

Jest ona ustawiana tylko po ocenie importów i właściwości . Oznacza to, że właściwość nie jest ustawiona podczas oceniania właściwości w pliku projektu, więc nie będzie to działać:

<PropertyGroup>
  <EnableCodeSigning Condition="'$(SdkIsSimulator)' == 'true'">false</EnableCodeSigning>
</PropertyGroup>

Jednak jeden z następujących elementów działa:

<ItemGroup>
  <!-- item groups (and their conditions) are evaluated after properties have been evaluated -->
  <CustomEntitlements Condition="'$(SdkIsSimulator)' == 'true'" Include="com.apple.simulator-entitlement" Type="Boolean" Value="true" />
  <CodesignConfigureDependsOn>$(CodesignConfigureDependsOn);ConfigureSimulatorSigning</CodesignConfigureDependsOn>
</ItemGroup>
<!-- targets are executed after properties have been evaluated -->
<Target Name="ConfigureSimulatorSigning">
  <PropertyGroup>
    <EnableCodeSigning Condition="'$(SdkIsSimulator) == 'true'">false</EnableCodeSigning>
  </PropertyGroup>
</Target>

Uwaga: ta właściwość będzie zawsze znajdować się false w systemach macOS i Mac Catalyst.

StripFrameworkHeaders

Właściwość logiczna określająca, czy katalogi Headers, PrivateHeaders i Modules są usuwane z osadzonych frameworków przed podpisaniem kodu.

Domyślna wartość to true. Ustaw go na false, aby zachować te katalogi.

StripPath

Pełna ścieżka do strip narzędzia wiersza polecenia.

Domyślnym zachowaniem jest użycie elementu xcrun strip.

SupportedOSPlatformVersion

Określa minimalną wersję systemu operacyjnego, w ramach których aplikacja może działać.

Można również użyć właściwości specyficznej dla platformy:

Ścieżka do Atlasu Tekstur

Pełna ścieżka do TextureAtlas narzędzia.

Domyślnym zachowaniem jest użycie elementu xcrun TextureAtlas.

TrimMode

Określa stopień szczegółowości przycinania.

Prawidłowe opcje to:

  • full: Przycinanie każdego zestawu.
  • partial: Przycinanie zestawów, które zdecydowały się na ten proces.
  • copy: Nie przycinaj żadnych zestawów.

Aby uzyskać więcej informacji na temat właściwości, zobacz TrimMode.

Uwaga / Notatka

Ze względów technicznych trymer musi być uruchamiany dla wszystkich projektów systemów iOS, tvOS, macOS i Mac Catalyst, nawet jeśli zestawy nie mają być przycinane. Z tego powodu nie można uznać za prawidłowe wyłączenie przycinania przez ustawienie PublishTrimmed na false — aby wyłączyć przycinanie, należy ustawić TrimMode=copy zamiast tego (zostanie zgłoszony błąd kompilacji, jeśli PublishTrimmed zostanie ustawione na false).

Właściwość jest równoważna TrimMode istniejącym właściwościom MtouchLink (dla systemów iOS, tvOS i Mac Catalyst) i LinkMode (dla systemu macOS), ale prawidłowe wartości właściwości są różne (mimo że semantyka jest taka sama):

MtouchLink/LinkMode TrimMode
Pełny pełny
SDKOnly częściowo
Żaden kopiuj

W dalszej perspektywie właściwości MtouchLink i LinkMode zostaną wycofane; proszę używać TrimMode zamiast nich.

Domyślny tryb przycinania zależy od wielu czynników i może również ulec zmianie w przyszłości.

Bieżące wartości domyślne (od platformy .NET 9) to:

  • iOS i tvOS: partial podczas budowania dla urządzenia i copy podczas budowania dla symulatora.
  • macOS: zawsze copy.
  • Mac Catalyst: partial dla konfiguracji "Release", copy w innym przypadku.

Wyjątki:

  • Wartość domyślna jest zawsze full w przypadku kompilowania za pomocą funkcji NativeAOT.
  • Program MAUI zmienia domyślną wartość na copy, gdy kompilowana jest konfiguracja Debugi interpreter jest włączony przy użyciu UseInterpreter (co MAUI również domyślnie włącza przy użyciu konfiguracji "Debug").

Uwaga / Notatka

Domyślny tryb przycinania może ulec zmianie w przyszłości.

tvOSMinimumVersion

Określa minimalną wersję systemu tvOS, w ramach których aplikacja może działać.

Dotyczy systemu tvOS; ustawienie tej wartości spowoduje ustawienie SupportedOSPlatformVersion dla projektów tvOS (tylko).

UseFloatingTargetPlatformVersion

Właściwość logiczna określająca, czy projekty bibliotek powinny używać przestawnej wersji platformy docelowej, czy najstarszej dostępnej wersji platformy.

Domyślnie (począwszy od .NET 10) projekty bibliotek, które nie mają jawnie określonego TargetPlatformVersion, użyją najstarszych dostępnych zestawów referencyjnych dla bieżącej wersji platformy .NET. Zapewnia to maksymalną zgodność i umożliwia kompilowanie kodu biblioteki względem minimalnej powierzchni interfejsu API dostępnej dla platformy docelowej.

Jednak to domyślne zachowanie oznacza, że projekty bibliotek są tworzone inaczej niż projekty wykonywalne (które korzystają z najnowszej wersji platformy). Kod, który działa w projekcie wykonywalnym, może nie być kompilowany po przeniesieniu do projektu biblioteki, jeśli używa interfejsów API dostępnych tylko w nowszych wersjach platformy.

Ustawienie tej właściwości na true wyłącza automatyczny wybór najstarszej wersji platformy, co pozwala projektowi biblioteki na użycie domyślnej (najnowszej) wersji platformy, podobnie jak robią to projekty wykonywalne.

Przykład:

<PropertyGroup>
  <!-- Use the latest platform version instead of the oldest -->
  <UseFloatingTargetPlatformVersion>true</UseFloatingTargetPlatformVersion>
</PropertyGroup>

Ustawienie domyślne: false (użyj najstarszej wersji platformy dla projektów biblioteki na platformie .NET 10+).

Ta właściwość dotyczy tylko projektów biblioteki (OutputType=Library), które nie są rozszerzeniami aplikacji i nie określiły jawnej wersji platformy docelowej (wersja platformy docelowej jest opcjonalnym numerem wersji na końcu TargetFramework właściwości, na przykład TargetFramework net10.0-ios26.0 wersja platformy docelowej jest jawnie 26.0).

Ta właściwość została wprowadzona na platformie .NET 10.

UseHardenedRuntime

Właściwość logiczna określająca, czy jest włączone środowisko uruchomieniowe ze wzmocnionymi zabezpieczeniami.

Dotyczy projektów macOS i Mac Catalyst.

Użyj interpretera

Włącza interpretera (dla wszystkich zestawów).

Jest to odpowiednik ustawienia MtouchInterpreter=all.

Dotyczy aplikacji dla systemów iOS, tvOS i Mac Catalyst (kiedy nie używa się funkcji NativeAOT).

Domyślne zachowanie polega na tym, że interpreter nie jest włączony.

Uwaga / Notatka

Domyślne ustawienie dla konfiguracji UseInterpreter=true jest zmieniane przez program MAUI na "Debug".

Aby uzyskać więcej informacji, zobacz MtouchInterpreter .

Ta właściwość ma wpływ tylko w przypadku korzystania ze środowiska uruchomieniowego Mono, a ostrzeżenie zostanie wyświetlone, jeśli zostanie ustawione, gdy nie jest używane środowisko uruchomieniowe Mono (na przykład w przypadku korzystania z CoreCLR).

UseNativeHttpHandler

Określa, czy natywna procedura obsługi http powinna być domyślną procedurą obsługi http, czy też nie.

Wartość domyślna: true dla wszystkich platform z wyjątkiem systemu macOS.

WalidacjaUprawnień

Określ, czy należy zweryfikować uprawnienia żądań aplikacji.

Prawidłowe wartości dla tej właściwości:

  • disable: Walidacja jest wyłączona.
  • warn: wszelkie błędy weryfikacji są wyświetlane jako ostrzeżenia.
  • error: wszelkie błędy weryfikacji są wyświetlane jako błędy. Jest to wartość domyślna.

Proces weryfikacji może nie weryfikować każdego uprawnienia ani nie ma gwarancji, że nie jest zbytnio entuzjastyczny.

Jeśli walidacja nie powiedzie się w przypadku uprawnień, które rzeczywiście działają, zgłoś nowy problem.

ValidateXcodeVersion

Określ, czy ma zostać zweryfikowana bieżąca wersja programu Xcode.

Wartością domyślną jest "weryfikuj"; aby wyłączyć, ustaw na false.

Uwaga / Notatka

Użycie innej niż zalecana wersja może powodować problemy w dalszej części procesu kompilacji.

XamMacResourcePrefix

Katalog, w którym są przechowywane zasoby (ten prefiks zostanie usunięty podczas kopiowania zasobów do pakietu aplikacji).

Dotyczy projektów systemu macOS.

Rozważ użycie ujednoliconej właściwości AppBundleResourcePrefix .

Zobacz również IPhoneResourcePrefix i MonoMacResourcePrefix.

XcodeLocation

Określa lokalizację środowiska Xcode.

Gdy proces budowania wyszukuje Xcode, jest wykonywany w następującej kolejności:

  1. Jeśli ustawiono właściwość XcodeLocation, użyj jej. Należy pamiętać, że ponieważ wszystkie zmienne środowiskowe są automatycznie właściwościami MSBuild, można również ustawić zmienną XcodeLocation środowiskową dla tego samego efektu.
  2. Jeśli zmienna środowiskowa MD_APPLE_SDK_ROOT jest ustawiona, użyj tej wartości.
  3. Jeśli którykolwiek z plików ~/Library/Preferences/maui/Settings.plist lub ~/Library/Preferences/Xamarin/Settings.plist istnieje i ma na liście właściwości wartość AppleSdkRoot, użyj go.
  4. Użyj systemowej wersji programu Xcode (określonej przez wykonanie polecenia xcode-select --print-path).

Warning

Obsługa zmiennej środowiskowej MD_APPLE_SDK_ROOT oraz plików ~/Library/Preferences/maui/Settings.plist i ~/Library/Preferences/Xamarin/Settings.plist jest przestarzała i zostanie usunięta w przyszłości. W przyszłości wybierz Xcode do użycia, ustawiając go jako systemową wersję Xcode (przy użyciu xcode-select --switch ... w wierszu polecenia lub w ustawieniach programu Xcode) albo ustawiając właściwość MSBuild / zmienną środowiskową XcodeLocation.

ZipPath

Pełna ścieżka do zip narzędzia wiersza polecenia.

Domyślnym zachowaniem jest użycie elementu xcrun zip.