Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Ta strona jest odwołaniem do właściwości i elementów programu MSBuild, których można użyć do konfigurowania projektów .NET.
Note
Ta strona jest w toku i nie zawiera listy wszystkich przydatnych właściwości programu MSBuild dla zestawu SDK .NET. Aby uzyskać listę typowych właściwości programu MSBuild, zobacz Typowe właściwości programu MSBuild.
Właściwości walidacji zestawu
Te właściwości i elementy są przekazywane do zadania. Aby uzyskać więcej informacji na temat walidacji zestawu, zobacz Walidacja zestawu.
Następujące właściwości programu MSBuild są udokumentowane w tej sekcji:
- ApiCompatStrictMode
- ApiCompatValidateAssemblies
Note
Te właściwości nie są częścią zestawu SDK .NET (jeszcze). Aby ich używać, należy również dodać element do pliku Microsoft.DotNet.ApiCompat.Task.
Ponadto następujące właściwości udokumentowane we właściwościach weryfikacji pakietu mają również zastosowanie do walidacji zestawu:
- ApiCompatEnableRuleAttributesMustMatch
- ApiCompatEnableRuleCannotChangeParameterName
- ApiCompatExcludeAttributesFile
- ApiCompatGenerateSuppressionFile
- ApiCompatPermitUnnecessarySuppressions
- ApiCompatPreserveUnnecessarySuppressions
- ApiCompatRespectInternals
- ApiCompatSuppressionFile
- ApiCompatSuppressionOutputFile
- NoWarn
- RoslynAssembliesPath
ApiCompatStrictMode
Po ustawieniu wartości właściwość określa, że kontrole zgodności interfejsu API powinny być wykonywane w trybie ścisłym.
<PropertyGroup>
<ApiCompatStrictMode>true</ApiCompatStrictMode>
</PropertyGroup>
ApiCompatValidateAssemblies
Właściwość umożliwia serię weryfikacji określonych zestawów. Aby uzyskać więcej informacji, zobacz Walidacja zestawu.
<PropertyGroup>
<ApiCompatValidateAssemblies>true</ApiCompatValidateAssemblies>
</PropertyGroup>
Właściwości atrybutu zestawu
- GenerateAssemblyInfo
- GeneratedAssemblyInfoFile
- IncludeSourceRevisionInInformationalVersion
- SourceRevisionId
GenerateAssemblyInfo
Właściwość steruje generowaniem atrybutów dla projektu. Domyślna wartość to . Użyj polecenia , aby wyłączyć generowanie pliku:
<PropertyGroup>
<GenerateAssemblyInfo>false</GenerateAssemblyInfo>
</PropertyGroup>
Ustawienie GeneratedAssemblyInfoFile steruje nazwą wygenerowanego pliku.
Gdy wartość to , właściwości projektu związane z pakietem są przekształcane w atrybuty zestawu.
Aby uzyskać więcej informacji na temat generowania atrybutów zestawu przy użyciu pliku projektu, zobacz Ustawianie atrybutów zestawu w pliku projektu.
GeneratedAssemblyInfoFile
Właściwość definiuje względną lub bezwzględną ścieżkę wygenerowanego pliku informacji o zestawie. Domyślnie jest to plik o nazwie [nazwa projektu]. AssemblyInfo. [cs|vb] w katalogu (zwykle obj).
<PropertyGroup>
<GeneratedAssemblyInfoFile>assemblyinfo.cs</GeneratedAssemblyInfoFile>
</PropertyGroup>
IncludeSourceRevisionInInformationalVersion
Właściwość określa, czy wartość jest dołączana do atrybutu zestawu. Domyślna wartość to . Ustaw tę opcję, aby wyłączyć to zachowanie:
<PropertyGroup>
<IncludeSourceRevisionInInformationalVersion>false</IncludeSourceRevisionInInformationalVersion>
</PropertyGroup>
Aby uzyskać więcej informacji, zobacz Source Link dołączony do zestawu SDK .NET.
SourceRevisionId
Właściwość zawiera identyfikator poprawki kontroli źródła dla kompilacji, taki jak skrót zatwierdzenia git. Począwszy od .NET 8, zestaw SDK .NET automatycznie wypełnia tę właściwość skrótem po Source Link jest obecny. Po ustawieniu jego wartość jest dołączana do atrybutu zestawu.
<PropertyGroup>
<SourceRevisionId>abc1234</SourceRevisionId>
</PropertyGroup>
Aby uzyskać więcej informacji, zobacz Source Link dołączony do zestawu SDK .NET.
Właściwości struktury
Następujące właściwości programu MSBuild są udokumentowane w tej sekcji:
- TargetFramework
- TargetFrameworks
- NetStandardImplicitPackageVersion
TargetFramework
Właściwość określa docelową wersję platformy dla aplikacji. Aby uzyskać listę prawidłowych szablonów platform docelowych, zobacz Target frameworks in SDK-style projects (Platformy docelowe w projektach w stylu zestawu SDK).
<PropertyGroup>
<TargetFramework>net8.0</TargetFramework>
</PropertyGroup>
Aby uzyskać więcej informacji, zobacz Platformy docelowe w projektach w stylu zestawu SDK.
TargetFrameworks
Użyj właściwości , jeśli aplikacja ma być docelowa dla wielu platform. Aby uzyskać listę prawidłowych szablonów platform docelowych, zobacz Target frameworks in SDK-style projects (Platformy docelowe w projektach w stylu zestawu SDK).
Note
Jeśli (liczba mnoga) jest określona, (liczba pojedyncza) jest ignorowana.
<PropertyGroup>
<TargetFrameworks>net8.0;net462</TargetFrameworks>
</PropertyGroup>
Aby uzyskać więcej informacji, zobacz Platformy docelowe w projektach w stylu zestawu SDK.
NetStandardImplicitPackageVersion
Note
Ta właściwość dotyczy tylko projektów przy użyciu polecenia . Nie dotyczy projektów korzystających z programu .
Użyj właściwości , jeśli chcesz określić wersję platformy niższą niż wersja metapakietowa. Plik projektu w poniższych przykładowych miejscach docelowych , ale używa wersji 1.6.0 programu .
<PropertyGroup>
<TargetFramework>netstandard1.3</TargetFramework>
<NetStandardImplicitPackageVersion>1.6.0</NetStandardImplicitPackageVersion>
</PropertyGroup>
Właściwości pakietu
- Właściwości opisowe
- PackRelease
Właściwości opisowe
Możesz określić właściwości, takie jak , , , i, aby opisać pakiet, który zostanie utworzony na podstawie projektu. Aby uzyskać informacje o tych i innych właściwościach, zobacz pack target (Element docelowy pakietu).
<PropertyGroup>
...
<PackageId>ClassLibDotNetStandard</PackageId>
<Version>1.0.0</Version>
<Authors>John Doe</Authors>
<Company>Contoso</Company>
</PropertyGroup>
PackRelease
Właściwość jest podobna do właściwości PublishRelease , z tą różnicą, że zmienia domyślne zachowanie elementu . Ta właściwość została wprowadzona w .NET 7.
<PropertyGroup>
<PackRelease>true</PackRelease>
</PropertyGroup>
Note
Począwszy od zestawu SDK .NET 8, PackRelease domyślnie true. Aby uzyskać więcej informacji, zobacz "dotnet pack" używa konfiguracji wydania.
Właściwości weryfikacji pakietu
Te właściwości i elementy są przekazywane do zadania. Aby uzyskać więcej informacji na temat weryfikacji pakietu, zobacz Omówienie weryfikacji pakietów.
Aby uzyskać informacje o właściwościach zadania, zobacz Właściwości walidacji zestawu.
Następujące właściwości i elementy programu MSBuild zostały udokumentowane w tej sekcji:
- ApiCompatEnableRuleAttributesMustMatch
- ApiCompatEnableRuleCannotChangeParameterName
- ApiCompatExcludeAttributesFile
- ApiCompatGenerateSuppressionFile
- ApiCompatPermitUnnecessarySuppressions
- ApiCompatPreserveUnnecessarySuppressions
- ApiCompatRespectInternals
- ApiCompatSuppressionFile
- ApiCompatSuppressionOutputFile
- EnablePackageValidation
- EnableStrictModeForBaselineValidation
- EnableStrictModeForCompatibleFrameworksInPackage
- EnableStrictModeForCompatibleTfms
- NoWarn
- PackageValidationBaselineFrameworkToIgnore
- PackageValidationBaselineName
- PackageValidationBaselineVersion
- PackageValidationReferencePath
- RoslynAssembliesPath
ApiCompatEnableRuleAttributesMustMatch
Po ustawieniu wartości właściwość włącza regułę sprawdzania poprawności, która sprawdza, czy atrybuty są zgodne. Wartość domyślna to .
<PropertyGroup>
<ApiCompatEnableRuleAttributesMustMatch>true</ApiCompatEnableRuleAttributesMustMatch>
</PropertyGroup>
ApiCompatEnableRuleCannotChangeParameterName
Po ustawieniu wartości właściwość włącza regułę walidacji, która sprawdza, czy nazwy parametrów zostały zmienione w metodach publicznych. Wartość domyślna to .
<PropertyGroup>
<ApiCompatEnableRuleCannotChangeParameterName>true</ApiCompatEnableRuleCannotChangeParameterName>
</PropertyGroup>
ApiCompatExcludeAttributesFile
Element określa ścieżkę do pliku zawierającego atrybuty do wykluczenia w formacie DocId .
<ItemGroup>
<ApiCompatExcludeAttributesFile Include="ApiCompatExcludedAttributes.txt" />
<ApiCompatExcludeAttributesFile Include="ApiCompatBaselineExcludedAttributes.txt" />
</ItemGroup>
ApiCompatGenerateSuppressionFile
Właściwość określa, czy należy wygenerować plik pomijania zgodności.
<PropertyGroup>
<ApiCompatGenerateSuppressionFile>true</ApiCompatGenerateSuppressionFile>
</PropertyGroup>
ApiCompatPermitUnnecessarySuppressions
Właściwość określa, czy zezwalać na niepotrzebne pomijania w pliku pomijania.
Wartość domyślna to .
<PropertyGroup>
<ApiCompatPermitUnnecessarySuppressions>true</ApiCompatPermitUnnecessarySuppressions>
</PropertyGroup>
ApiCompatPreserveUnnecessarySuppressions
Właściwość określa, czy zachować niepotrzebne pomijania podczas ponownego generowania pliku pomijania. Gdy istniejący plik pomijania jest ponownie wygenerowany, jego zawartość jest odczytywana, deserializowana w zestawie pomijań, a następnie przechowywana na liście. Niektóre pomijania mogą już nie być konieczne, jeśli niezgodność została naprawiona. Gdy pomijania są serializowane z powrotem na dysk, można zachować wszystkie istniejące (deserializowane) wyrażenia, ustawiając tę właściwość na wartość .
Wartość domyślna to .
<PropertyGroup>
<ApiCompatPreserveUnnecessarySuppressions>true</ApiCompatPreserveUnnecessarySuppressions>
</PropertyGroup>
ApiCompatRespectInternals
Właściwość określa, czy interfejsy API powinny być sprawdzane pod kątem zgodności oprócz interfejsów API.
<PropertyGroup>
<ApiCompatRespectInternals>true</ApiCompatRespectInternals>
</PropertyGroup>
ApiCompatSuppressionFile
Element określa ścieżkę do co najmniej jednego pliku pomijania do odczytu. Jeśli nie określono, plik pomijania project-directory/CompatibilitySuppressions.xml jest odczytywany (jeśli istnieje).
<ItemGroup>
<ApiCompatSuppressionFile Include="CompatibilitySuppressions.xml;CompatibilitySuppressions.WasmThreads.xml" />
</ItemGroup>
ApiCompatSuppressionOutputFile
Właściwość określa ścieżkę do pliku pomijania, który ma być zapisywany, gdy ma wartość . Jeśli nie zostanie określony, zostanie użyty pierwszy element.
EnablePackageValidation
Właściwość umożliwia serię weryfikacji pakietu po zadaniu . Aby uzyskać więcej informacji, zobacz Walidacja pakietu.
<PropertyGroup>
<EnablePackageValidation>true</EnablePackageValidation>
</PropertyGroup>
EnableStrictModeForBaselineValidation
Gdy jest ustawiona wartość , właściwość włącza tryb ścisły dla kontroli punktu odniesienia pakietu. Wartość domyślna to .
EnableStrictModeForCompatibleFrameworksInPackage
Gdy jest ustawiona wartość , właściwość włącza tryb ścisły dla zestawów, które są zgodne na podstawie ich struktury docelowej. Wartość domyślna to .
EnableStrictModeForCompatibleTfms
Po ustawieniu wartości właściwość włącza tryb ścisły dla zestawów kontraktów i implementacji dla wszystkich zgodnych platform docelowych. Wartość domyślna to .
NoWarn
Właściwość określa identyfikatory diagnostyczne do pomijania.
<PropertyGroup>
<NoWarn>$(NoWarn);PKV0001</NoWarn>
</PropertyGroup>
PackageValidationBaselineFrameworkToIgnore
Element określa platformę docelową do ignorowania z pakietu bazowego. Ciąg struktury musi dokładnie odpowiadać nazwie folderu w pakiecie odniesienia.
<ItemGroup>
<PackageValidationBaselineFrameworkToIgnore Include="netcoreapp2.1" />
</ItemGroup>
PackageValidationBaselineName
Właściwość określa nazwę pakietu bazowego w celu zweryfikowania bieżącego pakietu. Jeśli wartość jest nieokreślona, zostanie użyta .
PackageValidationBaselineVersion
Właściwość określa wersję pakietu bazowego w celu zweryfikowania bieżącego pakietu.
PackageValidationReferencePath
Element określa ścieżkę katalogu, w której można znaleźć zestaw odwołania na serwer TFM.
<ItemGroup>
<PackageValidationReferencePath Include="path/to/reference-assembly" TargetFramework="net9.0" />
</ItemGroup>
RoslynAssembliesPath
Właściwość określa ścieżkę do katalogu zawierającego zestawy Microsoft.CodeAnalysis, których chcesz użyć. Tę właściwość należy ustawić tylko wtedy, gdy chcesz przetestować go przy użyciu nowszego kompilatora niż to, co znajduje się w zestawie SDK.
Właściwości związane z publikowaniem
Następujące właściwości programu MSBuild są udokumentowane w tej sekcji:
- AppendRuntimeIdentifierToOutputPath
- AppendTargetFrameworkToOutputPath
- CopyLocalLockFileAssemblies
- ErrorOnDuplicatePublishOutputFiles
- GenerateRuntimeConfigDevFile
- GenerateRuntimeConfigurationFiles
- GenerateSatelliteAssembliesForCore
- IsPublishable
- PreserveCompilationContext
- PreserveCompilationReferences
- ProduceReferenceAssemblyInOutDir
- PublishDocumentationFile
- PublishDocumentationFiles
- PublishReferencesDocumentationFiles
- PublishReferencesSymbols
- PublishRelease
- PublishSelfContained
- RollForward
- RuntimeFrameworkVersion
- RuntimeIdentifier
- RuntimeIdentifiers
- SatelliteResourceLanguages
- SelfContained
- UseAppHost
AppendTargetFrameworkToOutputPath
Właściwość określa, czy moniker platformy docelowej (TFM) jest dołączany do ścieżki wyjściowej (która jest zdefiniowana przez outputPath). Zestaw SDK .NET automatycznie dołącza platformę docelową, a jeśli jest obecny, identyfikator środowiska uruchomieniowego do ścieżki wyjściowej. Ustawienie uniemożliwia dołączanie serwera TFM do ścieżki wyjściowej. Jednak bez serwera TFM w ścieżce wyjściowej wiele artefaktów kompilacji może zastąpić siebie nawzajem.
Na przykład w przypadku aplikacji .NET 5 ścieżka wyjściowa zmienia się z bin\Debug\net5.0 na bin\Debug z następującym ustawieniem:
<PropertyGroup>
<AppendTargetFrameworkToOutputPath>false</AppendTargetFrameworkToOutputPath>
</PropertyGroup>
AppendRuntimeIdentifierToOutputPath
Właściwość określa, czy identyfikator środowiska uruchomieniowego (RID) jest dołączany do ścieżki wyjściowej. Zestaw SDK .NET automatycznie dołącza platformę docelową i, jeśli istnieje, identyfikator środowiska uruchomieniowego (RID) do ścieżki wyjściowej. Ustawienie uniemożliwia dołączanie identyfikatora RID do ścieżki wyjściowej. (Jednak identyfikator RID jest nadal dołączany do ścieżki publikowania. Aby uzyskać więcej informacji, zobacz dotnet/sdk#12114).
Na przykład w przypadku aplikacji .NET 9 i identyfikatora RID win-x64 następujące ustawienie zmienia ścieżkę wyjściową z bin\Debug\net9.0\win-x64 na bin\Debug\net9.0:
<PropertyGroup>
<AppendRuntimeIdentifierToOutputPath>false</AppendRuntimeIdentifierToOutputPath>
</PropertyGroup>
CopyLocalLockFileAssemblies
Właściwość jest przydatna w przypadku projektów wtyczek, które mają zależności od innych bibliotek. Jeśli ustawisz tę właściwość na wartość , wszystkie przechodnie zależności pakietów NuGet zostaną skopiowane do katalogu wyjściowego. Oznacza to, że możesz użyć danych wyjściowych polecenia , aby uruchomić wtyczkę na dowolnej maszynie.
<PropertyGroup>
<CopyLocalLockFileAssemblies>true</CopyLocalLockFileAssemblies>
</PropertyGroup>
Wartość domyślna może się różnić w zależności od typu danych wyjściowych. Na przykład w przypadku bibliotek klas wartość domyślna to , a w przypadku aplikacji konsolowych wartość domyślna to . Tę właściwość można jawnie określić, aby w razie potrzeby zastąpić wartość domyślną.
Tip
Alternatywnie możesz użyć polecenia , aby opublikować bibliotekę klas. Aby uzyskać więcej informacji, zobacz dotnet publish (Publikowanie dotnet).
ErrorOnDuplicatePublishOutputFiles
Właściwość odnosi się do tego, czy zestaw SDK generuje błąd NETSDK1148, gdy program MSBuild wykrywa zduplikowane pliki w danych wyjściowych publikowania, ale nie może określić, które pliki mają być usuwane. Ustaw właściwość na wartość , jeśli nie chcesz, aby błąd został wygenerowany.
<PropertyGroup>
<ErrorOnDuplicatePublishOutputFiles>false</ErrorOnDuplicatePublishOutputFiles>
</PropertyGroup>
Ta właściwość została wprowadzona w .NET 6.
GenerateRuntimeConfigDevFile
Począwszy od zestawu SDK .NET 6, [Appname].runtimesettings.dev.json plik jest nie jest już generowany domyślnie w czasie kompilacji. Jeśli nadal chcesz wygenerować ten plik, ustaw właściwość na .
<PropertyGroup>
<GenerateRuntimeConfigDevFile>true</GenerateRuntimeConfigDevFile>
</PropertyGroup>
GenerateRuntimeConfigurationFiles
Właściwość określa, czy opcje konfiguracji środowiska uruchomieniowego są kopiowane z pliku runtimeconfig.template.json do pliku [appname].runtimeconfig.json . W przypadku aplikacji, które wymagają pliku runtimeconfig.json , czyli tych, których właściwość ma wartość , ta właściwość jest domyślnie ustawiona na .
<PropertyGroup>
<GenerateRuntimeConfigurationFiles>true</GenerateRuntimeConfigurationFiles>
</PropertyGroup>
GenerateSatelliteAssembliesForCore
Właściwość GenerateSatelliteAssembliesForCore określa, czy zestawy satelitarne są generowane przy użyciu csc.exe lub Al.exe (Assembly Linker) w projektach .NET Framework. (projekty .NET Core i .NET 5+ zawsze używają csc.exe do generowania zestawów satelitarnych). W przypadku projektów platformy .NET zestawy satelitarne są domyślnie tworzone przez al.exe. Ustawiając właściwość na , zestawy satelitarne są tworzone przez csc.exe zamiast tego. Użycie csc.exe może być korzystne w następujących sytuacjach:
- Chcesz użyć opcji języka C#.
- Ogranicza Cię fakt, że al.exe nie ma poparcia dla podpisywania publicznego i radzi sobie źle.
<PropertyGroup>
<GenerateSatelliteAssembliesForCore>true</GenerateSatelliteAssembliesForCore>
</PropertyGroup>
IsPublishable
Właściwość umożliwia uruchamianie elementu docelowego. Ta właściwość dotyczy tylko procesów korzystających z plików .*proj i obiektu docelowego, takich jak polecenie dotnet publish . Nie ma to wpływu na publikowanie w Visual Studio, który używa PublishOnly docelowej. Domyślna wartość to .
Ta właściwość jest przydatna w przypadku uruchamiania w pliku rozwiązania, ponieważ umożliwia automatyczne wybieranie projektów, które mają zostać opublikowane.
<PropertyGroup>
<IsPublishable>false</IsPublishable>
</PropertyGroup>
PreserveCompilationContext
Właściwość umożliwia skompilowanie lub opublikowanie aplikacji większej liczby kodu w czasie wykonywania przy użyciu tych samych ustawień, które były używane w czasie kompilacji. Zestawy przywoływane w czasie kompilacji zostaną skopiowane do podkatalogu ref katalogu wyjściowego. Nazwy zestawów odwołań są przechowywane w pliku .deps.json aplikacji wraz z opcjami przekazanymi do kompilatora. Te informacje można pobrać przy użyciu właściwości i .
Ta funkcja jest najczęściej używana wewnętrznie przez ASP.NET Core stron MVC i Razor do obsługi kompilacji plików Razor w czasie wykonywania.
<PropertyGroup>
<PreserveCompilationContext>true</PreserveCompilationContext>
</PropertyGroup>
PreserveCompilationReferences
Właściwość jest podobna do właściwości PreserveCompilationContext , z tą różnicą, że kopiuje tylko przywoływalne zestawy do katalogu publikowania, a nie do pliku .deps.json .
<PropertyGroup>
<PreserveCompilationReferences>true</PreserveCompilationReferences>
</PropertyGroup>
Aby uzyskać więcej informacji, zobacz Właściwości zestawu SDK Razor.
ProduceReferenceAssemblyInOutDir
W .NET 5 i starszych wersjach zestawy odwołań są zawsze zapisywane w katalogu OutDir. W .NET 6 lub nowszych wersjach można użyć właściwości ProduceReferenceAssemblyInOutDir, aby kontrolować, czy zestawy odwołań są zapisywane w katalogu OutDir. Wartość domyślna to , a zestawy odwołań są zapisywane tylko w katalogu. Ustaw wartość na , aby zapisywać zestawy odwołań do katalogu.
<PropertyGroup>
<ProduceReferenceAssemblyInOutDir>true</ProduceReferenceAssemblyInOutDir>
</PropertyGroup>
Aby uzyskać więcej informacji, zobacz Zapisywanie zestawów odwołań do danych wyjściowych pośrednich.
PublishDocumentationFile
Gdy ta właściwość to , plik dokumentacji XML dla projektu, jeśli został wygenerowany, jest uwzględniony w danych wyjściowych publikowania dla projektu. Ta właściwość jest domyślnie ustawiona na .
Tip
Ustaw wartość GenerateDocumentationFile , aby wygenerować plik dokumentacji XML w czasie kompilacji.
PublishDocumentationFiles
Ta właściwość jest flagą włączania dla kilku innych właściwości, które kontrolują, czy różnego rodzaju pliki dokumentacji XML są domyślnie kopiowane do katalogu publikowania, a mianowicie PublishDocumentationFile i PublishReferencesDocumentationFiles. Jeśli te właściwości nie są ustawione, a ta właściwość jest ustawiona, te właściwości będą domyślnie mieć wartość . Ta właściwość jest domyślnie ustawiona na .
PublishReferencesDocumentationFiles
Gdy ta właściwość to , pliki dokumentacji XML dla odwołań projektu są kopiowane do katalogu publikowania, zamiast tylko zasobów środowiska uruchomieniowego, takich jak pliki DLL. Ta właściwość jest domyślnie ustawiona na .
PublishReferencesSymbols
Gdy ta właściwość to , pliki symboli (znane również jako pliki PDB) dla odwołań projektu są kopiowane do katalogu publikowania, zamiast tylko zasobów środowiska uruchomieniowego, takich jak pliki DLL. Ta właściwość jest domyślnie ustawiona na .
PublishRelease
Właściwość informuje o użyciu konfiguracji domyślnie zamiast konfiguracji. Ta właściwość została wprowadzona w .NET 7.
<PropertyGroup>
<PublishRelease>true</PublishRelease>
</PropertyGroup>
Note
- Począwszy od zestawu SDK .NET 8,
PublishReleasedomyślnietruedla projektów docelowych .NET 8 lub nowszych. Aby uzyskać więcej informacji, zobacz "dotnet publish" używa konfiguracji wydania. - Ta właściwość nie ma wpływu na zachowanie
dotnet build /t:Publishi zmienia konfigurację tylko podczas publikowania za pośrednictwem interfejsu wiersza polecenia .NET.
PublishSelfContained
Właściwość informuje o opublikowaniu aplikacji jako aplikacji samodzielnej. Ta właściwość jest przydatna, gdy nie można użyć argumentu polecenia dotnet publish — na przykład podczas publikowania na poziomie rozwiązania. W takim przypadku można dodać właściwość MSBuild do pliku project lub Directory.Build.Props .
Ta właściwość została wprowadzona w .NET 7. Jest ona podobna do właściwości SelfContained , z tą różnicą, że jest specyficzna dla czasownika . Zaleca się użycie zamiast .
<PropertyGroup>
<PublishSelfContained>true</PublishSelfContained>
</PropertyGroup>
RollForward
Właściwość określa sposób wybierania środowiska uruchomieniowego przez aplikację, gdy dostępnych jest wiele wersji środowiska uruchomieniowego. Ta wartość jest wynikiem danych wyjściowych .runtimeconfig.json jako ustawienia.
<PropertyGroup>
<RollForward>LatestMinor</RollForward>
</PropertyGroup>
Ustaw na jedną z następujących wartości:
| Value | Description |
|---|---|
Minor |
Wartość domyślna , jeśli nie zostanie określona. Przejdź do następnej dostępnej nowszej wersji pomocniczej (i najwyższej dostępnej wersji poprawkowej w tej wersji pomocniczej), jeśli zażądano wersji pomocniczej. Jeśli żądana wersja pomocnicza jest obecna, zostaną użyte zasady. |
Major |
Przejdź do następnej dostępnej nowszej wersji głównej (w najniższej dostępnej wersji pomocniczej i najwyższej dostępnej wersji poprawkowej w tej wersji pomocniczej), jeśli zażądano wersji głównej. Jeśli żądana wersja główna jest obecna, zostaną użyte zasady. |
LatestPatch |
Przerzuć do najnowszej wersji poprawki dostępnej dla żądanych wersji głównych i pomocniczych. Ta wartość wyłącza wycofywanie wersji pomocniczej. |
LatestMinor |
Przerzuć do najwyższej wersji pomocniczej dostępnej dla żądanej wersji głównej (i najwyższej dostępnej wersji poprawkowej w tej wersji pomocniczej), nawet jeśli zażądano wersji pomocniczej. |
LatestMajor |
Przerzuć do najwyższej dostępnej wersji głównej (i najwyższej dostępnej wersji pomocniczej i poprawkowej w tej wersji głównej), nawet jeśli zażądano wersji głównej. |
Disable |
Nie przesyłaj dalej, powiąż tylko z określoną wersją. Te zasady nie są zalecane do użytku ogólnego, ponieważ wyłącza możliwość przekazywania do najnowszych poprawek. Ta wartość jest zalecana tylko do testowania. |
Aby uzyskać więcej informacji, zobacz Sterowanie zachowaniem wycofywania.
RuntimeFrameworkVersion
Właściwość określa wersję środowiska uruchomieniowego do użycia podczas publikowania. Określ wersję środowiska uruchomieniowego:
<PropertyGroup>
<RuntimeFrameworkVersion>5.0.7</RuntimeFrameworkVersion>
</PropertyGroup>
Podczas publikowania aplikacji zależnej od platformy ta wartość określa wymaganą minimalną wersję. Podczas publikowania aplikacji samodzielnej ta wartość określa dokładną wymaganą wersję.
RuntimeIdentifier
Właściwość umożliwia określenie pojedynczego identyfikatora środowiska uruchomieniowego (RID) dla projektu. Identyfikator RID umożliwia publikowanie samodzielnego wdrożenia.
<PropertyGroup>
<RuntimeIdentifier>linux-x64</RuntimeIdentifier>
</PropertyGroup>
RuntimeIdentifiers
Właściwość umożliwia określenie rozdzielanej średnikami listy identyfikatorów środowiska uruchomieniowego (RID) dla projektu. Użyj tej właściwości, jeśli musisz opublikować wiele środowisk uruchomieniowych. Jest używany w czasie przywracania, aby upewnić się, że odpowiednie zasoby znajdują się na grafie.
Tip
(pojedyncza) może zapewnić szybsze kompilacje, gdy wymagane jest tylko jedno środowisko uruchomieniowe.
<PropertyGroup>
<RuntimeIdentifiers>win-x64;osx-x64;linux-x64</RuntimeIdentifiers>
</PropertyGroup>
SatelliteResourceLanguages
Właściwość umożliwia określenie języków, dla których mają być zachowywane zestawy zasobów satelitarnych podczas kompilacji i publikowania. Wiele pakietów NuGet obejmuje zlokalizowane zestawy satelitarne zasobów w głównym pakiecie. W przypadku projektów odwołujących się do tych pakietów NuGet, które nie wymagają zlokalizowanych zasobów, zlokalizowane zestawy mogą niepotrzebnie zawyżać rozmiar kompilacji i publikowania danych wyjściowych. Dodając właściwość do pliku projektu, tylko zlokalizowane zestawy dla języków, które określisz, zostaną uwzględnione w danych wyjściowych kompilacji i publikowania. Na przykład w poniższym pliku projektu zostaną zachowane tylko zestawy satelitarne zasobów angielskich (USA) i niemiecki (Niemcy).
<PropertyGroup>
<SatelliteResourceLanguages>en-US;de-DE</SatelliteResourceLanguages>
</PropertyGroup>
Note
Tę właściwość należy określić w projekcie, który odwołuje się do pakietu NuGet z zlokalizowanymi zestawami satelickich zasobów.
Aby określić wiele języków jako argument do elementu , należy dodać trzy pary cudzysłowów wokół identyfikatorów języka. Przykład:
dotnet msbuild multi.msbuildproj -p:SatelliteResourceLanguages="""de;en"""
SelfContained
Właściwość informuje i kompiluje lub publikuje aplikację jako samodzielną aplikację. Ta właściwość jest przydatna, gdy nie można użyć argumentu z poleceniem dotnet — na przykład podczas publikowania na poziomie rozwiązania. W takim przypadku można dodać właściwość MSBuild do pliku project lub Directory.Build.Props .
Ta właściwość jest podobna do właściwości PublishSelfContained . Zaleca się użycie zamiast , gdy jest to możliwe.
<PropertyGroup>
<SelfContained>true</SelfContained>
</PropertyGroup>
UseAppHost
Właściwość określa, czy dla wdrożenia jest tworzony natywny plik wykonywalny. Natywny plik wykonywalny jest wymagany w przypadku wdrożeń samodzielnie zawartych. Plik wykonywalny zależny od platformy jest tworzony domyślnie. Ustaw właściwość na wartość , aby wyłączyć generowanie pliku wykonywalnego.
<PropertyGroup>
<UseAppHost>false</UseAppHost>
</PropertyGroup>
Aby uzyskać więcej informacji na temat wdrażania, zobacz .NET wdrażanie aplikacji.
Właściwości związane z przycinaniem
Wiele właściwości programu MSBuild jest dostępnych w celu dostosowania przycinania, co jest funkcją, która przycina nieużywany kod z wdrożeń samodzielnie zawartych. Te opcje zostały szczegółowo omówione w temacie Opcje przycinania. Poniższa tabela zawiera skróconą dokumentację.
| Property | Values | Description |
|---|---|---|
PublishTrimmed |
lub | Określa, czy przycinanie jest włączone podczas publikowania. |
TrimMode |
lub | Wartość domyślna to . Kontroluje stopień szczegółowości przycinania. |
SuppressTrimAnalysisWarnings |
lub | Określa, czy są generowane ostrzeżenia analizy przycinania. |
EnableTrimAnalyzer |
lub | Określa, czy jest generowany podzbiór ostrzeżeń analizy przycinania. Analizę można włączyć nawet wtedy, gdy jest ustawiona wartość . |
ILLinkTreatWarningsAsErrors |
lub | Określa, czy ostrzeżenia przycinania są traktowane jako błędy. Na przykład możesz ustawić tę właściwość na wartość , gdy jest ustawiona wartość . |
TrimmerSingleWarn |
lub | Określa, czy wyświetlane jest pojedyncze ostrzeżenie dla zestawu, czy wszystkie ostrzeżenia. |
TrimmerRemoveSymbols |
lub | Określa, czy wszystkie symbole są usuwane z przyciętej aplikacji. |
Właściwości związane z kompilacją
Następujące właściwości programu MSBuild są udokumentowane w tej sekcji:
- ContinuousIntegrationBuild
- CopyDebugSymbolFilesFromPackages
- CopyDocumentationFilesFromPackages
- DisableImplicitFrameworkDefines
- DocumentationFile
- EmbeddedResourceUseDependentUponConvention
- EnablePreviewFeatures
- EnableWindowsTargeting
- GenerateDocumentationFile
- GenerateRequiresPreviewFeaturesAttribute
- OptimizeImplicitlyTriggeredBuild
- DisableRuntimeMarshalling
- BuildWithNetFrameworkHostedCompiler
- RoslynCompilerType
Opcje kompilatora języka C#, takie jak i , można również określić jako właściwości programu MSBuild w pliku projektu. Aby uzyskać więcej informacji, zobacz Opcje kompilatora języka C#.
ContinuousIntegrationBuild
Właściwość wskazuje, czy kompilacja jest uruchamiana na serwerze ciągłej integracji. W przypadku ustawienia na wartość ta właściwość włącza ustawienia, które mają zastosowanie tylko do oficjalnych kompilacji, w przeciwieństwie do kompilacji lokalnych na maszynie dewelopera. Na przykład przechowywane ścieżki plików są znormalizowane dla oficjalnych kompilacji. Jednak na lokalnej maszynie programistycznej debuger nie może znaleźć lokalnych plików źródłowych, jeśli ścieżki plików są znormalizowane.
Możesz użyć zmiennej systemu ciągłej integracji, aby warunkowo ustawić właściwość. Na przykład nazwa zmiennej dla Azure Pipelines to TF_BUILD:
<PropertyGroup Condition="'$(TF_BUILD)' == 'true'">
<ContinuousIntegrationBuild>true</ContinuousIntegrationBuild>
</PropertyGroup>
W przypadku GitHub Actions nazwa zmiennej to GITHUB_ACTIONS:
<PropertyGroup Condition="'$(GITHUB_ACTIONS)' == 'true'">
<ContinuousIntegrationBuild>true</ContinuousIntegrationBuild>
</PropertyGroup>
CopyDebugSymbolFilesFromPackages
Gdy ta właściwość jest ustawiona na wartość , wszystkie pliki symboli (znane również jako pliki PDB) z elementów w projekcie są kopiowane do danych wyjściowych kompilacji. Te pliki mogą zapewnić bardziej informacyjne ślady stosu dla wyjątków i ułatwić zrozumienie zrzutów pamięci i śladów uruchomionej aplikacji. Jednak uwzględnienie tych plików powoduje zwiększenie rozmiaru pakietu wdrożenia.
Ta właściwość została wprowadzona w zestawie .NET SDK 7.0.100, ale domyślnie nie jest określona.
CopyDocumentationFilesFromPackages
Gdy ta właściwość jest ustawiona na wartość , wszystkie wygenerowane pliki dokumentacji XML z elementów w projekcie są kopiowane do danych wyjściowych kompilacji. Należy pamiętać, że włączenie tej funkcji spowoduje zwiększenie rozmiaru pakietu wdrożenia.
Ta właściwość została wprowadzona w zestawie .NET SDK 7.0.100, ale domyślnie nie jest określona.
DisableImplicitFrameworkDefines
Właściwość DisableImplicitFrameworkDefines określa, czy zestaw SDK generuje symbole preprocesora dla platformy docelowej i platformy dla projektu .NET. Gdy ta właściwość jest ustawiona na lub nie jest ustawiona (która jest wartością domyślną) symbole preprocesora są generowane dla:
- Struktura bez wersji (, , )
- Struktura z wersją (, , )
- Struktura z minimalną granicą wersji (, , )
Aby uzyskać więcej informacji na temat obiektów monikerów platform docelowych i tych niejawnych symboli preprocesora, zobacz Platformy docelowe.
Ponadto jeśli określisz strukturę docelową specyficzną dla systemu operacyjnego w projekcie (na przykład ), zostaną wygenerowane następujące symbole preprocesora:
- Platforma bez wersji (, , )
- Platforma z wersją ()
- Platforma z minimalną granicą wersji ()
Aby uzyskać więcej informacji na temat programu monikers platform docelowych specyficznych dla systemu operacyjnego, zobacz TfMs specyficzne dla systemu operacyjnego.
Jeśli platforma docelowa oznacza obsługę starszych platform docelowych, są emitowane symbole preprocesora dla tych starszych struktur. Na przykład oznacza obsługę i tak dalej w drodze powrotnej do . Dlatego dla każdej z tych platform docelowych zostanie zdefiniowana struktura z minimalnym symbolem ograniczenia wersji.
DocumentationFile
Właściwość umożliwia określenie nazwy pliku XML zawierającego dokumentację biblioteki. Aby funkcja IntelliSense działała poprawnie z dokumentacją, nazwa pliku musi być taka sama jak nazwa zestawu i musi znajdować się w tym samym katalogu co zestaw. Jeśli nie określisz tej właściwości, ale ustawisz wartość GenerateDocumentationFile na , nazwa pliku dokumentacji jest domyślnie nazwą zestawu, ale z rozszerzeniem .xml pliku. Z tego powodu często łatwiej jest pominąć tę właściwość i zamiast tego użyć właściwości GenerateDocumentationFile.
Jeśli określisz tę właściwość, ale ustawisz wartość GenerateDocumentationFile na , kompilator nie generuje pliku dokumentacji. Jeśli określisz tę właściwość i pominięto właściwość GenerateDocumentationFile, kompilator generuje plik dokumentacji.
<PropertyGroup>
<DocumentationFile>path/to/file.xml</DocumentationFile>
</PropertyGroup>
EmbeddedResourceUseDependentUponConvention
Właściwość określa, czy nazwy plików manifestu zasobu są generowane na podstawie informacji o typie w plikach źródłowych, które są współlokowane z plikami zasobów. Jeśli na przykład plik Form1.resx znajduje się w tym samym folderze co Form1.cs i jest ustawiony na wartość , wygenerowany plik resources przyjmuje nazwę z pierwszego typu zdefiniowanego w Form1.cs. Jeśli jest pierwszym typem zdefiniowanym w Form1.cs, wygenerowana nazwa pliku to MyNamespace.Form1.resources.
Note
Jeśli dla elementu określono , lub metadane, wygenerowana nazwa pliku manifestu dla tego pliku zasobu jest oparta na tych metadanych.
Domyślnie w nowym projekcie .NET przeznaczonym dla .NET Core 3.0 lub nowszej wersji ta właściwość jest ustawiona na true. Jeśli ustawiono wartość , a dla elementu w pliku projektu nie określono żadnych metadanych , nazwa pliku manifestu zasobu jest oparta na głównej przestrzeni nazw projektu i względnej ścieżce pliku do pliku resx. Aby uzyskać więcej informacji, zobacz How resource manifest files are named (Jak nazwane są pliki manifestu zasobu).
<PropertyGroup>
<EmbeddedResourceUseDependentUponConvention>true</EmbeddedResourceUseDependentUponConvention>
</PropertyGroup>
EnablePreviewFeatures
Właściwość określa, czy projekt zależy od interfejsów API, czy zestawów, które są ozdobione atrybutem . Ten atrybut służy do oznaczania, że interfejs API lub zestaw używa funkcji, które są uważane za w wersji zapoznawczej dla używanej wersji zestawu SDK. Funkcje w wersji zapoznawczej nie są obsługiwane i mogą zostać usunięte w przyszłej wersji. Aby włączyć korzystanie z funkcji w wersji zapoznawczej, ustaw właściwość na wartość .
<PropertyGroup>
<EnablePreviewFeatures>True</EnablePreviewFeatures>
</PropertyGroup>
Gdy projekt zawiera tę właściwość ustawioną na wartość , do pliku AssemblyInfo.cs zostanie dodany następujący atrybut na poziomie zestawu:
[assembly: RequiresPreviewFeatures]
Analizator ostrzega, czy ten atrybut występuje w zależnościach dla projektów, w których nie ustawiono wartości .
Autorzy bibliotek, którzy zamierzają dostarczać zestawy w wersji zapoznawczej, powinni ustawić tę właściwość na . Jeśli zestaw musi być dostarczony z kombinacją interfejsów API w wersji zapoznawczej i bez wersji zapoznawczej, zobacz sekcję GenerateRequiresPreviewFeaturesAttribute poniżej.
EnableWindowsTargeting
Ustaw właściwość EnableWindowsTargeting na true, aby tworzyć aplikacje Windows (na przykład aplikacje Windows Forms lub Windows Presentation Foundation) na platformie innej niż Windows. Jeśli nie ustawisz tej właściwości na wartość , zostanie wyświetlone ostrzeżenie kompilacji NETSDK1100. Ten błąd występuje, ponieważ pakiety określania wartości docelowej i pakietów środowiska uruchomieniowego nie są automatycznie pobierane na platformach, które nie są obsługiwane. Ustawiając tę właściwość, te pakiety są pobierane podczas określania wartości krzyżowych.
Note
Ta właściwość jest obecnie zalecana do zezwalania na programowanie na platformach innych niż Windows. Jednak gdy aplikacja jest gotowa do wydania, powinna zostać utworzona na Windows. W przypadku kompilacji na platformie innej niż Windows dane wyjściowe mogą nie być takie same jak podczas kompilowania na platformie Windows. W szczególności plik wykonywalny nie jest oznaczony jako aplikacja Windows (co oznacza, że zawsze uruchomi okno konsoli) i nie będzie mieć osadzonej ikony.
<PropertyGroup>
<EnableWindowsTargeting>true</EnableWindowsTargeting>
</PropertyGroup>
GenerateDocumentationFile
Właściwość określa, czy kompilator generuje plik dokumentacji XML dla biblioteki. Jeśli ustawisz tę właściwość na i nie określisz nazwy pliku za pomocą właściwości DocumentationFile, wygenerowany plik XML zostanie umieszczony w tym samym katalogu wyjściowym co zestaw i ma taką samą nazwę pliku (ale z rozszerzeniem .xml ).
<PropertyGroup>
<GenerateDocumentationFile>true</GenerateDocumentationFile>
</PropertyGroup>
Aby uzyskać więcej informacji na temat generowania dokumentacji z komentarzy kodu, zobacz XML documentation comments (C#), Documentowanie kodu za pomocą kodu XML (Visual Basic) lub Dokumentowanie kodu za pomocą kodu XML (F#).
GenerateRequiresPreviewFeaturesAttribute
Właściwość jest ściśle powiązana z właściwością EnablePreviewFeatures . Jeśli biblioteka używa funkcji w wersji zapoznawczej, ale nie chcesz, aby cały zestaw został oznaczony atrybutem , co wymagałoby od użytkowników włączenia funkcji w wersji zapoznawczej, ustaw tę właściwość na wartość .
<PropertyGroup>
<EnablePreviewFeatures>True</EnablePreviewFeatures>
<GenerateRequiresPreviewFeaturesAttribute>False</GenerateRequiresPreviewFeaturesAttribute>
</PropertyGroup>
Important
Jeśli ustawisz właściwość na , musisz mieć pewność, że wszystkie publiczne interfejsy API, które opierają się na funkcjach w wersji zapoznawczej z .
OptimizeImplicitlyTriggeredBuild
Aby przyspieszyć czas kompilacji, kompilacje, które są niejawnie wyzwalane przez Visual Studio pomijać analizę kodu, w tym analizę dopuszczającą wartość null. Visual Studio wyzwala niejawną kompilację podczas uruchamiania testów, na przykład. Jednak niejawne kompilacje są optymalizowane tylko wtedy, gdy nie jest . Jeśli ustawiono wartość , ale nadal chcesz, aby kompilacje wyzwalane niejawnie zostały zoptymalizowane, możesz ustawić wartość . Aby wyłączyć optymalizację kompilacji dla niejawnie wyzwalanych kompilacji, ustaw wartość .
<PropertyGroup>
<OptimizeImplicitlyTriggeredBuild>True</OptimizeImplicitlyTriggeredBuild>
</PropertyGroup>
DisableRuntimeMarshalling
Właściwość umożliwia określenie, że chcesz wyłączyć obsługę marshalingu środowiska uruchomieniowego dla projektu. Jeśli ta właściwość jest ustawiona na wartość , element zostanie dodany do zestawu, a wszystkie wywołania P/Invoke lub międzyoperacyjności oparte na delegatach będą zgodne z regułami dla wyłączonego marshalingu środowiska uruchomieniowego.
<PropertyGroup>
<DisableRuntimeMarshalling>True</DisableRuntimeMarshalling>
</PropertyGroup>
BuildWithNetFrameworkHostedCompiler
Określenie jest odpowiednikiem określania wartości . Aby uzyskać więcej informacji, zobacz RoslynCompilerType. Określenie zapewnia, że automatyczna zgoda na nie zostanie wykonana. Jeśli określono jawnie, nie ma żadnego wpływu.
RoslynCompilerType
Właściwość RoslynCompilerType kontroluje wersję kompilatora języka C# lub Visual Basic. Rozpoznawane są następujące wartości:
-
Core: użyj kompilatora dostarczanego z zestawem .NET SDK. Jest to wartość domyślna od .NET 10, nawet w przypadku korzystania z programu .NET Framework MSBuild. -
Framework: użyj kompilatora dostarczanego z programem .NET Framework MSBuild. -
FrameworkPackage: w przypadku korzystania z programu .NET Framework MSBuild pobierz i użyj pakietu z kompilatorem .NET Framework odpowiadającym wersji zestawu SDK .NET.
Domyślne właściwości dołączania elementów
Następujące właściwości programu MSBuild są udokumentowane w tej sekcji:
- DefaultItemExcludesInProjectFolder
- DefaultItemExcludes
- EnableDefaultCompileItems
- EnableDefaultEmbeddedResourceItems
- EnableDefaultItems
- EnableDefaultNoneItems
Aby uzyskać więcej informacji, zobacz Domyślne dołączanie i wykluczanie.
DefaultItemExcludes
Użyj właściwości , aby zdefiniować wzorce glob dla plików i folderów, które powinny zostać wykluczone z elementów dołączania, wykluczania i usuwania symboli globs. Domyślnie foldery ./bin i ./obj są wykluczone z wzorców globu.
<PropertyGroup>
<DefaultItemExcludes>$(DefaultItemExcludes);**/*.myextension</DefaultItemExcludes>
</PropertyGroup>
Note
Właściwość wyklucza pliki i foldery z obserwowanych przez program . Aby uzyskać więcej informacji, zobacz Ignoruj określone foldery i pliki z programu .
DefaultItemExcludesInProjectFolder
Użyj właściwości , aby zdefiniować wzorce glob dla plików i folderów w folderze projektu, które powinny zostać wykluczone z elementów dołączania, wykluczania i usuwania symboli globs. Domyślnie foldery rozpoczynające się od kropki (), takie jak .git i .vs, są wykluczane z wzorców globu.
Ta właściwość jest bardzo podobna do właściwości, z tą różnicą, że uwzględnia tylko pliki i foldery w folderze projektu. Jeśli wzorzec globu przypadkowo pasuje do elementów spoza folderu projektu ze ścieżką względną, użyj właściwości zamiast właściwości .
<PropertyGroup>
<DefaultItemExcludesInProjectFolder>$(DefaultItemExcludesInProjectFolder);**/myprefix*/**</DefaultItemExcludesInProjectFolder>
</PropertyGroup>
EnableDefaultItems
Właściwość określa, czy elementy kompilowania, osadzone elementy zasobów i elementy są niejawnie zawarte w projekcie. Domyślna wartość to . Ustaw właściwość na wartość , aby wyłączyć wszystkie niejawne dołączanie plików.
<PropertyGroup>
<EnableDefaultItems>false</EnableDefaultItems>
</PropertyGroup>
EnableDefaultCompileItems
Właściwość określa, czy elementy kompilacji są niejawnie zawarte w projekcie. Domyślna wartość to . Ustaw właściwość na wartość , aby wyłączyć niejawne dołączanie *.cs i innych plików rozszerzeń języka.
<PropertyGroup>
<EnableDefaultCompileItems>false</EnableDefaultCompileItems>
</PropertyGroup>
EnableDefaultEmbeddedResourceItems
Właściwość określa, czy osadzone elementy zasobów są niejawnie uwzględnione w projekcie. Domyślna wartość to . Ustaw właściwość na wartość , aby wyłączyć niejawne dołączanie osadzonych plików zasobów.
<PropertyGroup>
<EnableDefaultEmbeddedResourceItems>false</EnableDefaultEmbeddedResourceItems>
</PropertyGroup>
EnableDefaultNoneItems
Właściwość określa, czy elementy (pliki, które nie mają roli w procesie kompilacji) są niejawnie zawarte w projekcie. Domyślna wartość to . Ustaw właściwość na wartość , aby wyłączyć niejawne dołączanie elementów.
<PropertyGroup>
<EnableDefaultNoneItems>false</EnableDefaultNoneItems>
</PropertyGroup>
Właściwości analizy kodu
Następujące właściwości programu MSBuild są udokumentowane w tej sekcji:
- AnalysisLevel
- Kategoria AnalysisLevel
- AnalysisMode
- Kategoria AnalysisMode
- CodeAnalysisTreatWarningsAsErrors
- EnableNETAnalyzers
- EnforceCodeStyleInBuild
- _SkipUpgradeNetAnalyzersNuGetWarning
AnalysisLevel
Właściwość AnalysisLevel umożliwia określenie zestawu analizatorów kodu do uruchomienia zgodnie z wydaniem .NET. Każda wersja .NET ma zestaw reguł analizy kodu. W tym zestawie reguły, które są domyślnie włączone dla tej wersji, analizują kod. Jeśli na przykład uaktualnisz z .NET 8 do .NET 9, ale nie chcesz, aby domyślny zestaw reguł analizy kodu zmienił się, ustaw AnalysisLevel na 8.
<PropertyGroup>
<AnalysisLevel>8</AnalysisLevel>
</PropertyGroup>
Opcjonalnie można określić wartość złożoną dla tej właściwości, która określa również, jak agresywnie włączyć reguły. Wartości złożone mają postać , gdzie wartość jest jedną z wartości AnalysisMode . W poniższym przykładzie użyto wersji analizatorów kodu i włączono zestaw reguł.
<PropertyGroup>
<AnalysisLevel>preview-recommended</AnalysisLevel>
</PropertyGroup>
Wartość domyślna:
- Jeśli projekt jest przeznaczony dla .NET 5 lub nowszych lub został dodany AnalysisMode, wartość domyślna to
latest. - W przeciwnym razie ta właściwość zostanie pominięta, chyba że jawnie dodasz ją do pliku projektu.
W poniższej tabeli przedstawiono wartości, które można określić.
| Value | Meaning |
|---|---|
latest |
Używane są najnowsze analizatory kodu, które zostały wydane. Jest to opcja domyślna. |
latest-<mode> |
Używane są najnowsze analizatory kodu, które zostały wydane. Wartość określa, które reguły są włączone. |
preview |
Używane są najnowsze analizatory kodu, nawet jeśli są w wersji zapoznawczej. |
preview-<mode> |
Używane są najnowsze analizatory kodu, nawet jeśli są w wersji zapoznawczej. Wartość określa, które reguły są włączone. |
10.0 |
Używany jest zestaw reguł, które były dostępne dla wersji .NET 10, nawet jeśli są dostępne nowsze reguły. |
10.0-<mode> |
Używany jest zestaw reguł, które były dostępne dla wersji .NET 10, nawet jeśli są dostępne nowsze reguły. Wartość określa, które reguły są włączone. |
10 |
Używany jest zestaw reguł, które były dostępne dla wersji .NET 10, nawet jeśli są dostępne nowsze reguły. |
10-<mode> |
Używany jest zestaw reguł, które były dostępne dla wersji .NET 10, nawet jeśli są dostępne nowsze reguły. Wartość określa, które reguły są włączone. |
9.0 |
Używany jest zestaw reguł, które były dostępne dla wersji .NET 9, nawet jeśli są dostępne nowsze reguły. |
9.0-<mode> |
Używany jest zestaw reguł, które były dostępne dla wersji .NET 9, nawet jeśli są dostępne nowsze reguły. Wartość określa, które reguły są włączone. |
9 |
Używany jest zestaw reguł, które były dostępne dla wersji .NET 9, nawet jeśli są dostępne nowsze reguły. |
9-<mode> |
Używany jest zestaw reguł, które były dostępne dla wersji .NET 9, nawet jeśli są dostępne nowsze reguły. Wartość określa, które reguły są włączone. |
8.0 |
Używany jest zestaw reguł, które były dostępne dla wersji .NET 8, nawet jeśli są dostępne nowsze reguły. |
8.0-<mode> |
Używany jest zestaw reguł, które były dostępne dla wersji .NET 8, nawet jeśli są dostępne nowsze reguły. Wartość określa, które reguły są włączone. |
8 |
Używany jest zestaw reguł, które były dostępne dla wersji .NET 8, nawet jeśli są dostępne nowsze reguły. |
8-<mode> |
Używany jest zestaw reguł, które były dostępne dla wersji .NET 8, nawet jeśli są dostępne nowsze reguły. Wartość określa, które reguły są włączone. |
Note
- Jeśli ustawisz wartość na wartość , ta właściwość wpływa na stylu kodu (IDEXXXX) (oprócz reguł jakości kodu).
- Jeśli ustawisz wartość złożoną dla parametru , nie musisz określać elementu AnalysisMode. Jeśli jednak to zrobisz, pierwszeństwo ma wartość .
- Ta właściwość nie ma wpływu na analizę kodu w projektach, które nie odwołują się do project SDK, na przykład starszych projektów .NET Framework odwołujących się do pakietu NuGet Microsoft.CodeAnalysis.NetAnalyzers. Aby uzyskać więcej informacji, zobacz Włączanie analizy kodu w starszych projektach.
Kategoria AnalysisLevel
Ta właściwość jest taka sama jak AnalysisLevel, z tą różnicą, że dotyczy tylko określonej kategorii reguł analizy kodu. Ta właściwość umożliwia używanie innej wersji analizatorów kodu dla określonej kategorii lub włączania lub wyłączania reguł na innym poziomie do innych kategorii reguł. Jeśli pominiesz tę właściwość dla określonej kategorii reguł, domyślnie zostanie ustawiona wartość AnalysisLevel . Dostępne wartości są takie same jak w przypadku elementu AnalysisLevel.
<PropertyGroup>
<AnalysisLevelSecurity>preview</AnalysisLevelSecurity>
</PropertyGroup>
<PropertyGroup>
<AnalysisLevelSecurity>preview-recommended</AnalysisLevelSecurity>
</PropertyGroup>
W poniższej tabeli wymieniono nazwę właściwości dla każdej kategorii reguł.
| Nazwa właściwości | Kategoria reguły |
|---|---|
<AnalysisLevelDesign> |
Reguły projektowania |
<AnalysisLevelDocumentation> |
Reguły dokumentacji |
<AnalysisLevelGlobalization> |
Reguły globalizacji |
<AnalysisLevelInteroperability> |
Reguły przenośności i współdziałania |
<AnalysisLevelMaintainability> |
Reguły konserwacji |
<AnalysisLevelNaming> |
Reguły nazewnictwa |
<AnalysisLevelPerformance> |
Reguły wydajności |
<AnalysisLevelSingleFile> |
Reguły aplikacji jednoplikowych |
<AnalysisLevelReliability> |
Reguły niezawodności |
<AnalysisLevelSecurity> |
Reguły zabezpieczeń |
<AnalysisLevelStyle> |
Reguły stylu kodu (IDEXXXX) |
<AnalysisLevelUsage> |
Reguły użycia |
AnalysisMode
Zestaw SDK .NET jest dostarczany ze wszystkimi regułami jakości kodu "CA. Domyślnie są włączone tylko reguły some jako ostrzeżenia kompilacji w każdej wersji .NET. Właściwość umożliwia dostosowanie zestawu reguł, które są domyślnie włączone. Możesz przełączyć się na bardziej agresywny tryb analizy, w którym możesz zrezygnować z reguł pojedynczo lub bardziej konserwatywny tryb analizy, w którym można wyrazić zgodę na określone reguły. Jeśli na przykład chcesz włączyć wszystkie reguły jako ostrzeżenia kompilacji, ustaw wartość na .
<PropertyGroup>
<AnalysisMode>All</AnalysisMode>
</PropertyGroup>
W poniższej tabeli przedstawiono dostępne wartości opcji. Są one wymienione w kolejności rosnącej liczby reguł, które włączają.
| Value | Description |
|---|---|
None |
Wszystkie reguły są wyłączone. Możesz selektywnie wyrazić zgodę na poszczególne reguły, aby je włączyć. |
Default |
Tryb domyślny, w którym niektóre reguły są włączone jako ostrzeżenia kompilacji, niektóre reguły są włączone jako sugestie Visual Studio IDE, a pozostałe są wyłączone. |
Minimum |
Bardziej agresywny tryb niż tryb. Niektóre sugestie, które są zdecydowanie zalecane w przypadku wymuszania kompilacji, są włączone jako ostrzeżenia kompilacji. Aby sprawdzić, które reguły obejmują, sprawdź %ProgramFiles%/do tnet/sdk/[version]/Sdks/Microsoft.NET. Zestaw SDK/analyzers/build/config/analysislevel_[level]_minimum.globalconfig plik. (W przypadku .NET 7 i starszych wersji rozszerzenie pliku jest .editorconfig). |
Recommended |
Bardziej agresywny tryb niż tryb, w którym więcej reguł jest włączanych jako ostrzeżenia kompilacji. Aby sprawdzić, które reguły obejmują, sprawdź %ProgramFiles%/do tnet/sdk/[version]/Sdks/Microsoft.NET. Zestaw SDK/analyzers/build/config/analysislevel_[level]_recommended.globalconfig pliku. (W przypadku .NET 7 i starszych wersji rozszerzenie pliku jest .editorconfig). |
All |
Wszystkie reguły są włączone jako ostrzeżenia kompilacji. Możesz selektywnie zrezygnować z poszczególnych reguł, aby je wyłączyć. * Następujące reguły nie są ). Te starsze reguły mogą być przestarzałe w przyszłej wersji. Można je jednak nadal włączać indywidualnie przy użyciu wpisu. |
Note
- Jeśli ustawisz wartość na wartość , ta właściwość wpływa na stylu kodu (IDEXXXX) (oprócz reguł jakości kodu).
- Jeśli używasz wartości złożonej dla elementu AnalysisLevel, na przykład , możesz całkowicie pominąć tę właściwość. Jeśli jednak określisz obie właściwości, pierwszeństwo ma wartość .
Kategoria AnalysisMode
Ta właściwość jest taka sama jak funkcja AnalysisMode, z tą różnicą, że dotyczy tylko określonej kategorii reguł analizy kodu. Ta właściwość umożliwia włączanie lub wyłączanie reguł na innym poziomie do innych kategorii reguł. Jeśli pominiesz tę właściwość dla określonej kategorii reguł, domyślnie zostanie ustawiona wartość AnalysisMode . Dostępne wartości są takie same jak w przypadku funkcji AnalysisMode.
<PropertyGroup>
<AnalysisModeSecurity>All</AnalysisModeSecurity>
</PropertyGroup>
W poniższej tabeli wymieniono nazwę właściwości dla każdej kategorii reguł.
| Nazwa właściwości | Kategoria reguły |
|---|---|
<AnalysisModeDesign> |
Reguły projektowania |
<AnalysisModeDocumentation> |
Reguły dokumentacji |
<AnalysisModeGlobalization> |
Reguły globalizacji |
<AnalysisModeInteroperability> |
Reguły przenośności i współdziałania |
<AnalysisModeMaintainability> |
Reguły konserwacji |
<AnalysisModeNaming> |
Reguły nazewnictwa |
<AnalysisModePerformance> |
Reguły wydajności |
<AnalysisModeSingleFile> |
Reguły aplikacji jednoplikowych |
<AnalysisModeReliability> |
Reguły niezawodności |
<AnalysisModeSecurity> |
Reguły zabezpieczeń |
<AnalysisModeStyle> |
Reguły stylu kodu (IDEXXXX) |
<AnalysisModeUsage> |
Reguły użycia |
CodeAnalysisTreatWarningsAsErrors
Właściwość umożliwia skonfigurowanie, czy ostrzeżenia analizy jakości kodu (CAxxxx) powinny być traktowane jako ostrzeżenia i przerywać kompilację. Jeśli używasz flagi -warnaserror podczas kompilowania projektów, .NET analiza jakości kodu ostrzeżenia są również traktowane jako błędy. Jeśli nie chcesz, aby ostrzeżenia analizy jakości kodu były traktowane jako błędy, możesz ustawić właściwość MSBuild na wartość w pliku projektu.
<PropertyGroup>
<CodeAnalysisTreatWarningsAsErrors>false</CodeAnalysisTreatWarningsAsErrors>
</PropertyGroup>
EnableNETAnalyzers
.NET analiza jakości kodu jest domyślnie włączona dla projektów docelowych .NET 5 lub nowszej wersji. Jeśli programujesz przy użyciu zestawu SDK .NET 5 lub nowszych, możesz włączyć .NET analizę kodu dla projektów w stylu zestawu SDK przeznaczonych dla wcześniejszych wersji .NET, ustawiając właściwość EnableNETAnalyzers na true. Aby wyłączyć analizę kodu w dowolnym projekcie, ustaw tę właściwość na wartość .
<PropertyGroup>
<EnableNETAnalyzers>true</EnableNETAnalyzers>
</PropertyGroup>
Note
Ta właściwość ma zastosowanie specjalnie do wbudowanych analizatorów w zestawie SDK .NET 5+. Nie należy jej używać podczas instalowania pakietu analizy kodu NuGet.
EnforceCodeStyleInBuild
.NET analiza stylu kodu jest domyślnie wyłączona podczas kompilacji dla wszystkich projektów .NET. Analizę stylu kodu dla projektów .NET można włączyć, ustawiając właściwość EnforceCodeStyleInBuild na wartość true.
<PropertyGroup>
<EnforceCodeStyleInBuild>true</EnforceCodeStyleInBuild>
</PropertyGroup>
Wszystkie reguły stylu kodu skonfigurowane jako ostrzeżenia lub błędy będą wykonywane na naruszeniach kompilacji i zgłaszania.
_SkipUpgradeNetAnalyzersNuGetWarning
Właściwość _SkipUpgradeNetAnalyzersNuGetWarning umożliwia skonfigurowanie, czy otrzymujesz ostrzeżenie, jeśli używasz analizatorów kodu z pakietu NuGet, który jest nieaktualny w porównaniu z analizatorami kodu w najnowszym zestawie .NET SDK. Ostrzeżenie wygląda podobnie do następującego:
Zestaw SDK .NET ma nowsze analizatory w wersji "6.0.0" niż wersja "5.0.3" pakietu "Microsoft.CodeAnalysis.NetAnalyzers". Zaktualizuj lub usuń odwołanie do tego pakietu.
Aby usunąć to ostrzeżenie i nadal używać wersji analizatorów kodu w pakiecie NuGet, ustaw wartość na w pliku projektu.
<PropertyGroup>
<_SkipUpgradeNetAnalyzersNuGetWarning>true</_SkipUpgradeNetAnalyzersNuGetWarning>
</PropertyGroup>
Właściwości konfiguracji środowiska uruchomieniowego
Niektóre zachowania środowiska uruchomieniowego można skonfigurować, określając właściwości programu MSBuild w pliku projektu aplikacji. Aby uzyskać informacje o innych sposobach konfigurowania zachowania środowiska uruchomieniowego, zobacz Ustawienia konfiguracji środowiska uruchomieniowego.
- AutoreleasePoolSupport
- ConcurrentGarbageCollection
- InvariantGlobalization
- PredefinedCulturesOnly
- RetainVMGarbageCollection
- ServerGarbageCollection
- ThreadPoolMaxThreads
- ThreadPoolMinThreads
- TieredCompilation
- TieredCompilationQuickJit
- TieredCompilationQuickJitForLoops
- TieredPGO
- UseWindowsThreadPool
AutoreleasePoolSupport
Właściwość określa, czy każdy zarządzany wątek otrzymuje niejawną pulę NSAutoreleasePool podczas uruchamiania na obsługiwanej platformie macOS. Aby uzyskać więcej informacji, zobacz temat Dotyczący zarządzanych wątków.
<PropertyGroup>
<AutoreleasePoolSupport>true</AutoreleasePoolSupport>
</PropertyGroup>
ConcurrentGarbageCollection
Właściwość określa, czy funkcja odzyskiwania pamięci w tle (współbieżna) jest włączona. Ustaw wartość na wartość , aby wyłączyć odzyskiwanie pamięci w tle. Aby uzyskać więcej informacji, zobacz Tło GC.
<PropertyGroup>
<ConcurrentGarbageCollection>false</ConcurrentGarbageCollection>
</PropertyGroup>
InvariantGlobalization
Właściwość określa, czy aplikacja działa w trybie niezmiennym globalizacji, co oznacza, że nie ma dostępu do danych specyficznych dla kultury. Ustaw wartość tak, aby uruchamiała się w trybie niezmiennym globalizacji. Aby uzyskać więcej informacji, zobacz Tryb niezmienny.
<PropertyGroup>
<InvariantGlobalization>true</InvariantGlobalization>
</PropertyGroup>
PredefinedCulturesOnly
W .NET 6 lub nowszych wersjach właściwość PredefinedCulturesOnly konfiguruje, czy aplikacje mogą tworzyć kultury inne niż niezmienna kultura, gdy tryb niezmienny globalizacji jest włączony. Wartość domyślna to . Ustaw wartość na wartość , aby umożliwić tworzenie dowolnej nowej kultury w trybie niezmiennym globalizacji.
<PropertyGroup>
<PredefinedCulturesOnly>false</PredefinedCulturesOnly>
</PropertyGroup>
Aby uzyskać więcej informacji, zobacz Tworzenie kultury i mapowanie wielkości liter w trybie niezmiennym globalizacji.
RetainVMGarbageCollection
Właściwość umożliwia skonfigurowanie modułu odśmieceń pamięci w celu umieszczania usuniętych segmentów pamięci na liście rezerwowej na potrzeby ich przyszłego użycia lub zwolnienia. Ustawienie wartości na polecenie modułu odśmiecającego odśmiecenie, aby umieścić segmenty na liście rezerwowej. Aby uzyskać więcej informacji, zobacz Zachowywanie maszyny wirtualnej.
<PropertyGroup>
<RetainVMGarbageCollection>true</RetainVMGarbageCollection>
</PropertyGroup>
ServerGarbageCollection
Właściwość określa, czy aplikacja używa odzyskiwania pamięci stacji roboczej, czy odzyskiwania pamięci serwera. Ustaw wartość na , aby używać odzyskiwania pamięci serwera. Aby uzyskać więcej informacji, zobacz Stacja robocza a serwer.
<PropertyGroup>
<ServerGarbageCollection>true</ServerGarbageCollection>
</PropertyGroup>
ThreadPoolMaxThreads
Właściwość konfiguruje maksymalną liczbę wątków dla puli wątków roboczych. Aby uzyskać więcej informacji, zobacz Maksymalna liczba wątków.
<PropertyGroup>
<ThreadPoolMaxThreads>20</ThreadPoolMaxThreads>
</PropertyGroup>
ThreadPoolMinThreads
Właściwość konfiguruje minimalną liczbę wątków dla puli wątków roboczych. Aby uzyskać więcej informacji, zobacz Minimalne wątki.
<PropertyGroup>
<ThreadPoolMinThreads>4</ThreadPoolMinThreads>
</PropertyGroup>
TieredCompilation
Właściwość określa, czy kompilator just in time (JIT) używa kompilacji warstwowej. Ustaw wartość na wartość , aby wyłączyć kompilację warstwową. Aby uzyskać więcej informacji, zobacz Kompilacja warstwowa.
<PropertyGroup>
<TieredCompilation>false</TieredCompilation>
</PropertyGroup>
TieredCompilationQuickJit
Właściwość określa, czy kompilator JIT używa szybkiego trybu JIT. Ustaw wartość , aby wyłączyć szybki dostęp JIT. Aby uzyskać więcej informacji, zobacz Szybki dostęp JIT.
<PropertyGroup>
<TieredCompilationQuickJit>false</TieredCompilationQuickJit>
</PropertyGroup>
TieredCompilationQuickJitForLoops
Właściwość określa, czy kompilator JIT używa szybkiego trybu JIT w metodach zawierających pętle. Ustaw wartość , aby włączyć szybki dostęp JIT dla metod, które zawierają pętle. Aby uzyskać więcej informacji, zobacz Szybki dostęp JIT dla pętli.
<PropertyGroup>
<TieredCompilationQuickJitForLoops>true</TieredCompilationQuickJitForLoops>
</PropertyGroup>
TieredPGO
Właściwość określa, czy jest włączona optymalizacja dynamiczna lub oparta na profilu warstwowym (PGO). Ustaw wartość na wartość w celu włączenia warstwowego PGO. Aby uzyskać więcej informacji, zobacz Optymalizacja sterowana profilem.
<PropertyGroup>
<TieredPGO>true</TieredPGO>
</PropertyGroup>
UseWindowsThreadPool
Właściwość UseWindowsThreadPool określa, czy zarządzanie wątkami puli wątków jest delegowane do puli wątków Windows (tylko Windows). Wartość domyślna to false, w którym przypadku jest używana pula wątków .NET. Aby uzyskać więcej informacji, zobacz Windows puli wątków.
<PropertyGroup>
<UseWindowsThreadPool>true</UseWindowsThreadPool>
</PropertyGroup>
Właściwości powiązane z odwołaniem
Następujące właściwości programu MSBuild są udokumentowane w tej sekcji:
- AssetTargetFallback
- DisableImplicitFrameworkReferences
- DisableTransitiveFrameworkReferenceDownloads
- DisableTransitiveProjectReferences
- ManagePackageVersionsCentrally
- Właściwości związane z przywracaniem
- UseMauiEssentials
- ValidateExecutableReferencesMatchSelfContained
AssetTargetFallback
Właściwość umożliwia określenie dodatkowych zgodnych wersji platformy dla odwołań do projektu i pakietów NuGet. Jeśli na przykład określisz zależność pakietu przy użyciu polecenia , ale ten pakiet nie zawiera zasobów zgodnych z projektami , właściwość zostanie w pełni uwzględniona. Zgodność przywoływanego pakietu jest ponownie zaznaczona przy użyciu każdej platformy docelowej określonej w elemencie . Ta właściwość zastępuje przestarzałą właściwość .
Właściwość można ustawić na co najmniej jedną wersję platformy docelowej.
<PropertyGroup>
<AssetTargetFallback>net461</AssetTargetFallback>
</PropertyGroup>
DisableImplicitFrameworkReferences
Właściwość DisableImplicitFrameworkReferences kontroluje niejawne elementy FrameworkReference podczas określania wartości docelowej .NET Core 3.0 i nowszych wersji. W przypadku określania wartości docelowej .NET Core 2.1 lub .NET Standard 2.0 i starszych wersji kontroluje niejawne PackageReference elementy do pakietów w metapakażu. (Metapakiet to pakiet oparty na strukturze, który składa się tylko z zależności od innych pakietów). Ta właściwość kontroluje również odwołania niejawne, takie jak System i System.Core podczas określania wartości docelowej .NET Framework.
Ustaw tę właściwość na wartość , aby wyłączyć niejawne elementy FrameworkReference lub PackageReference. Jeśli ustawisz tę właściwość na , możesz dodać jawne odwołania tylko do potrzebnych struktur lub pakietów.
<PropertyGroup>
<DisableImplicitFrameworkReferences>true</DisableImplicitFrameworkReferences>
</PropertyGroup>
DisableTransitiveFrameworkReferenceDownloads
Ustaw właściwość , aby uniknąć pobierania dodatkowych pakietów środowiska uruchomieniowego i pakietów docelowych, do których nie odwołuje się bezpośrednio projekt.
<PropertyGroup>
<DisableTransitiveFrameworkReferenceDownloads>true</DisableTransitiveFrameworkReferenceDownloads>
</PropertyGroup>
DisableTransitiveProjectReferences
Właściwość kontroluje niejawne odwołania do projektu. Ustaw tę właściwość na wartość , aby wyłączyć niejawne elementy. Wyłączenie niejawnych odwołań do projektu powoduje niezamieszające zachowanie podobne do starszego systemu projektu.
Gdy ta właściwość ma wartość , ma podobny wpływ na ustawienie dla wszystkich zależności projektu zależnego.
Jeśli ustawisz tę właściwość na wartość , możesz dodać jawne odwołania do tylko potrzebnych projektów.
<PropertyGroup>
<DisableTransitiveProjectReferences>true</DisableTransitiveProjectReferences>
</PropertyGroup>
ManagePackageVersionsCentrally
Właściwość ManagePackageVersionsCentrally została wprowadzona w .NET 7. Ustawiając go w pliku Directory.Packages.props w katalogu głównym repozytorium, można zarządzać typowymi zależnościami w projektach z jednej lokalizacji. Dodaj wersje dla typowych zależności pakietów przy użyciu elementów w pliku Directory.Packages.props . Następnie w pojedynczych plikach projektu można pominąć atrybuty z dowolnych elementów odwołujących się do centralnie zarządzanych pakietów.
Przykładowy plik Directory.Packages.props :
<PropertyGroup>
<ManagePackageVersionsCentrally>true</ManagePackageVersionsCentrally>
</PropertyGroup>
...
<ItemGroup>
<PackageVersion Include="Microsoft.Extensions.Configuration" Version="9.0.0" />
</ItemGroup>
Pojedynczy plik projektu:
<ItemGroup>
<PackageReference Include="Microsoft.Extensions.Configuration" />
</ItemGroup>
Aby uzyskać więcej informacji, zobacz centralne zarządzanie pakietami (CPM) .
Właściwości związane z przywracaniem
Przywrócenie odwołanego pakietu instaluje wszystkie jego bezpośrednie zależności i wszystkie zależności tych zależności. Przywracanie pakietu można dostosować, określając właściwości, takie jak i . Aby uzyskać więcej informacji na temat tych i innych właściwości, zobacz przywracanie obiektu docelowego.
<PropertyGroup>
<RestoreIgnoreFailedSource>true</RestoreIgnoreFailedSource>
</PropertyGroup>
UseMauiEssentials
Ustaw właściwość na , aby zadeklarować jawne odwołanie do projektu lub pakietu, który zależy od maUI Essentials. To ustawienie zapewnia, że projekt jest ściągany we właściwej znanej dokumentacji platformy dla programu MAUI Essentials. Jeśli projekt odwołuje się do projektu korzystającego z programu MAUI Essentials, ale nie ustawisz tej właściwości na , może wystąpić ostrzeżenie kompilacji .
<PropertyGroup>
<UseMauiEssentials>true</UseMauiEssentials>
</PropertyGroup>
ValidateExecutableReferencesMatchSelfContained
Właściwość może służyć do wyłączania błędów związanych z odwołaniami do projektu wykonywalnego. Jeśli .NET wykryje, że samodzielny projekt wykonywalny odwołuje się do projektu wykonywalnego zależnego od struktury lub odwrotnie, generuje błędy odpowiednio NETSDK1150 i NETSDK1151. Aby uniknąć tych błędów, gdy odwołanie jest zamierzone, ustaw właściwość na .
<PropertyGroup>
<ValidateExecutableReferencesMatchSelfContained>false</ValidateExecutableReferencesMatchSelfContained>
</PropertyGroup>
WindowsSdkPackageVersion
Właściwość WindowsSdkPackageVersion może służyć do zastąpienia wersji Windows pakietu określania wartości docelowej zestawu SDK. Ta właściwość została wprowadzona w .NET 5 i zastępuje użycie elementu FrameworkReference w tym celu.
<PropertyGroup>
<WindowsSdkPackageVersion>10.0.19041.18</WindowsSdkPackageVersion>
</PropertyGroup>
Note
Nie zalecamy zastępowania wersji zestawu SDK Windows, ponieważ pakiety docelowe zestawu SDK Windows są dołączone do zestawu SDK .NET 5 lub nowszych. Zamiast tego, aby odwołać się do najnowszego pakietu zestawu SDK Windows, zaktualizuj swoją wersję zestawu .NET SDK. Ta właściwość powinna być używana tylko w rzadkich przypadkach, takich jak używanie pakietów w wersji zapoznawczej lub konieczność zastąpienia wersji C#/WinRT.
Właściwości związane z uruchamianiem
Następujące właściwości są używane do uruchamiania aplikacji za pomocą polecenia :
- RunArguments
- RunWorkingDirectory
RunArguments
Właściwość definiuje argumenty przekazywane do aplikacji podczas jej uruchamiania.
<PropertyGroup>
<RunArguments>-mode dryrun</RunArguments>
</PropertyGroup>
Tip
Możesz określić dodatkowe argumenty, które mają zostać przekazane do aplikacji, używając opcji .
RunWorkingDirectory
Właściwość definiuje katalog roboczy, w ramach których ma zostać uruchomiony proces aplikacji. Może to być ścieżka bezwzględna lub ścieżka względna względem katalogu projektu. Jeśli nie określisz katalogu, zostanie użyty jako katalog roboczy.
<PropertyGroup>
<RunWorkingDirectory>c:\temp</RunWorkingDirectory>
</PropertyGroup>
Właściwości związane z zestawem SDK
Następujące właściwości programu MSBuild są udokumentowane w tej sekcji:
- SdkAnalysisLevel
SdkAnalysisLevel
Wprowadzona w .NET 9 właściwość SdkAnalysisLevel może służyć do konfigurowania sposobu strict narzędzi zestawu SDK. Ułatwia zarządzanie poziomami ostrzeżeń zestawu SDK w sytuacjach, w których może nie być możliwe przypięcie zestawów SDK za pośrednictwem global.json lub innych środków. Za pomocą tej właściwości można poinformować nowszy zestaw SDK, aby zachowywał się tak, jakby był starszym zestawem SDK w odniesieniu do określonego narzędzia lub funkcji bez konieczności instalowania starszego zestawu SDK.
Dozwolone wartości tej właściwości to pasma funkcji zestawu SDK, na przykład 8.0.100 i 8.0.400. Wartość domyślna dla przedziału funkcji zestawu SDK uruchomionego zestawu SDK. Na przykład w przypadku zestawu SDK 9.0.102 wartość do użycia to 9.0.100. (Aby uzyskać informacje na temat sposobu przechowywania wersji zestawu SDK .NET, zobacz Jak .NET jest wersjonowana).
<PropertyGroup>
<SdkAnalysisLevel>8.0.400</SdkAnalysisLevel>
</PropertyGroup>
Aby uzyskać więcej informacji, zobacz Właściwość i użycie na poziomie analizy zestawu SDK.
Poniższa tabela zawiera podsumowanie diagnostyki i zachowań, których dotyczy problem.
| SDKAnalysisLevel | Description | Zaktualizowane zachowanie |
|---|---|---|
| 9.0.100 | Przywracanie diagnostyki źródeł HTTP | Emituje błąd NU1302 zamiast ostrzeżenia NU1803 . |
| 10.0.100 | Oczyszczanie pakietów "Przywróć" | PrunePackageReference jest domyślnie włączona dla projektów docelowych .NET 8 lub .NET Standard 2.0+. |
| 10.0.100 | Rozpoznawanie "Przywracania" z plikami blokady | Używa ulepszonego, .NET 9 narzędzia rozpoznawania grafów zależności zamiast starszego narzędzia rozpoznawania grafów zależności (.NET 8 zestawów SDK i starszych wersji). |
| 10.0.100 | Zachowanie "Przywróć" dla funkcji PackageReference bez wersji | Emituje błąd NU1015 zamiast ostrzeżenia NU1603 . |
Note
Zachowanie włączone przez wartość wygasnie (wygasa) po trzech głównych wersjach. Na przykład wersja 11.0.100 uwzględnia tylko wartości w dół do 8.0.100. W wersji 12.0.100 funkcje, które w poprzednich wersjach mogą być wyłączone przez ustawienie wartości 8.0.100 nie będzie już wyłączone.
Microsoft.Testing.Platform — właściwości związane z platformą
Następujące właściwości programu MSBuild są udokumentowane w tej sekcji:
- IsTestingPlatformApplication
- Enable[NugetPackageNameWithoutDots]
- EnableAspireTesting
- EnableMSTestRunner
- EnableNUnitRunner
- EnablePlaywright
- GenerateTestingPlatformConfigurationFile
- GenerateTestingPlatformEntryPoint
- TestingExtensionsProfile
- TestingPlatformCaptureOutput
- TestingPlatformCommandLineArguments
- TestingPlatformDotnetTestSupport
- TestingPlatformShowTestsFailure
- UseMicrosoftTestingPlatformRunner
IsTestingPlatformApplication
Gdy projekt odwołuje się do pakietu Microsoft.Testing.Platform.MSBuild , ustawienie na wartość (która jest również wartością domyślną, jeśli nie zostanie określona), wykonuje następujące czynności:
- Generuje punkt wejścia do projektu testowego.
- Generuje plik konfiguracji.
- Wykrywa rozszerzenia.
Ustawienie właściwości w celu wyłączenia zależności przechodniej z pakietem. Zależność przechodnia polega na tym, że projekt odwołujący się do innego projektu, który odwołuje się do danego pakietu, zachowuje się tak, jakby odwołuje się do pakietu. Zazwyczaj tę właściwość należy ustawić na w projekcie nietestowym, który odwołuje się do projektu testowego. Aby uzyskać więcej informacji, zobacz błąd CS8892.
Jeśli projekt testowy odwołuje się do msTest, NUnit lub xUnit, ta właściwość jest ustawiona na taką samą wartość jak EnableMSTestRunner, EnableNUnitRunner lub (dla xUnit).
Enable[NugetPackageNameWithoutDots]
Użyj właściwości ze wzorcem , aby włączyć lub wyłączyć rozszerzenia Microsoft.Testing.Platform.
Aby na przykład włączyć rozszerzenie zrzutu awaryjnego (pakiet NuGet Microsoft.Testing.Extensions.CrashDump), ustaw wartość .
Aby uzyskać więcej informacji, zobacz Włączanie lub wyłączanie rozszerzeń.
EnableAspireTesting
Korzystając z zestawu SDK projektu MSTest, możesz użyć właściwości , aby wprowadzić wszystkie zależności i dyrektywy domyślne potrzebne do testowania za pomocą narzędzi i . Ta właściwość jest dostępna w programie MSTest 3.4 i nowszych wersjach.
Aby uzyskać więcej informacji, zobacz Test with Aspire (Testowanie za pomocą aspirującego).
EnablePlaywright
Korzystając z zestawu SDK projektu MSTest, możesz użyć właściwości , aby wprowadzić wszystkie zależności i dyrektywy domyślne potrzebne do testowania za pomocą narzędzi i . Ta właściwość jest dostępna w programie MSTest 3.4 i nowszych wersjach.
Aby uzyskać więcej informacji, zobacz Dramaturg.
EnableMSTestRunner
Właściwość włącza lub wyłącza korzystanie z biblioteki Microsoft.Testing.Platform (MTP), uproszczonej i przenośnej alternatywy dla programu VSTest. Ta właściwość jest dostępna w msTest 3.2 i nowszych wersjach.
Note
Jeśli projekt określa zestaw MSTest SDK, nie musisz ustawiać tej właściwości. Jest ona ustawiana automatycznie.
EnableNUnitRunner
Właściwość włącza lub wyłącza korzystanie z modułu uruchamiającego NUnit. Moduł uruchamiający NUnit jest lekką i przenośną alternatywą dla programu VSTest. Ta właściwość jest dostępna w NUnit3TestAdapter w wersji 5.0 lub nowszej.
UseMicrosoftTestingPlatformRunner
Właściwość włącza lub wyłącza korzystanie z modułu uruchamiającego Microsoft.Testing.Platform w projektach testowych xUnit.v3 .
GenerateTestingPlatformEntryPoint
Ustawienie właściwości na wyłącza automatyczne generowanie punktu wejścia programu w projektach testowych korzystających z Microsoft.Testing.Platform. Możesz ustawić tę właściwość na wartość podczas ręcznego definiowania punktu wejścia lub w przypadku odwołowania się do projektu testowego z pliku wykonywalnego, który ma również punkt wejścia.
Aby uzyskać więcej informacji, zobacz błąd CS8892.
Aby kontrolować generowanie punktu wejścia w projekcie VSTest, użyj właściwości .
GenerateTestingPlatformConfigurationFile
Właściwość jest dostępna tylko wtedy, gdy isTestingPlatformApplication to . Służy do zezwalania na kopiowanie i zmienianie nazwy pliku konfiguracji w folderze wyjściowym.
TestingPlatformCaptureOutput
Właściwość określa, czy wszystkie dane wyjściowe konsoli są przechwytywane i ukryte przed użytkownikiem podczas uruchamiania testów. Domyślnie dane wyjściowe konsoli są ukryte. Te dane wyjściowe obejmują baner, informacje o wersji i sformatowane informacje o teście. Ustaw tę właściwość, aby wyświetlić te informacje razem z danymi wyjściowymi programu MSBuild.
Aby uzyskać więcej informacji, zobacz Show complete platform output (Pokaż pełne dane wyjściowe platformy).
TestingPlatformCommandLineArguments
Właściwość umożliwia określenie argumentów wiersza polecenia dla aplikacji testowej podczas uruchamiania testów. Poniższy fragment kodu pliku projektu przedstawia przykład.
<PropertyGroup>
...
<TestingPlatformCommandLineArguments>--minimum-expected-tests 10</TestingPlatformCommandLineArguments>
</PropertyGroup>
TestingPlatformDotnetTestSupport
Właściwość umożliwia testowanie aplikacji Microsoft.Testing.Platform w przypadku korzystania z trybu VSTest .
Note
Nie należy wywoływać rozwiązania, które ma projekty VSTest i Microsoft.Testing.Platform, ponieważ ten scenariusz nie jest obsługiwany.
Aby uzyskać więcej informacji, zobacz Testowanie za pomocą polecenia "dotnet test".
TestingPlatformShowTestsFailure
Właściwość umożliwia kontrolowanie, czy podczas uruchamiania testów zgłaszany jest pojedynczy błąd, czy wszystkie błędy w teście, które zakończyły się niepowodzeniem. Domyślnie błędy testów są sumowane w pliku .log , a pojedynczy błąd na projekt testowy jest zgłaszany w programie MSBuild. Aby wyświetlić błędy dla testu, ustaw tę właściwość na wartość w pliku projektu.
TestingExtensionsProfile
W przypadku korzystania z zestawu SDK projektu MSTest właściwość umożliwia wybranie profilu do użycia. W poniższej tabeli przedstawiono dozwolone wartości.
| Value | Description |
|---|---|
Default |
Włącza zalecane rozszerzenia dla tej wersji zestawu MSTest.SDK. |
None |
Nie włączono rozszerzeń. |
AllMicrosoft |
Włącz wszystkie rozszerzenia dostarczane przez firmę Microsoft (w tym rozszerzenia z restrykcyjną licencją). |
Aby uzyskać więcej informacji, zobacz Microsoft.Testing.Platform profile.
Właściwości związane z narzędziem VSTest
Następujące właściwości programu MSBuild są udokumentowane w tej sekcji:
- IsTestProject
- UseVSTest
IsTestProject
Właściwość IsTestProject jest ustawiona na true przez Microsoft.NET. Pakiet NuGet Test.Sdk. Oznacza to, czy projekt jest projektem testowym VSTest, tak aby był rozpoznawany przez program .
Note
Jeśli projekt określa MSTest SDK, nie musisz ustawiać tej właściwości, ponieważ zestaw MSTest.Sdk odwołuje się do microsoft.NET. Pakiet NuGet Test.Sdk.
UseVSTest
Ustaw właściwość na , aby przełączyć się z microsoft.Testing.Platform na moduł uruchamiający VSTest podczas korzystania z zestawu SDK projektu msTest .
Właściwości związane z narzędziem MSTest
Następujące właściwości programu MSBuild są udokumentowane w tej sekcji:
- MSTestAnalysisMode
MSTestAnalysisMode
Ta właściwość decyduje, które analizatory są włączone w danej ważności. Aby uzyskać więcej informacji, zobacz analizy kodu MSTest.
Właściwości związane z hostingem
Następujące właściwości programu MSBuild są udokumentowane w tej sekcji:
- AppHostDotNetSearch
- AppHostRelativeDotNet
- EnableComHosting
- EnableDynamicLoading
AppHostDotNetSearch
Właściwość AppHostDotNetSearch konfiguruje sposób natywnego pliku wykonywalnego utworzonego dla aplikacji będzie wyszukiwać instalację .NET. Ta właściwość ma wpływ tylko na plik wykonywalny utworzony podczas publikowania, a nie kompilacji.
<PropertyGroup>
<AppHostDotNetSearch>Global</AppHostDotNetSearch>
</PropertyGroup>
W poniższej tabeli wymieniono prawidłowe wartości. Można określić wiele wartości rozdzielonych średnikami.
| Value | Meaning |
|---|---|
AppLocal |
Folder pliku wykonywalnego aplikacji |
AppRelative |
Ścieżka względem pliku wykonywalnego aplikacji określonego przez appHostRelativeDotNet |
EnvironmentVariable |
Wartość zmiennych środowiskowych |
Global |
Zarejestrowane i domyślne globalne lokalizacje instalacji |
Ta właściwość została wprowadzona w .NET 9.
AppHostRelativeDotNet
Właściwość AppHostRelativeDotNet umożliwia określenie ścieżki względnej pliku wykonywalnego aplikacji w celu wyszukania instalacji .NET, gdy jest ona konfigurowana w tym celu. Ustawienie właściwości oznacza, że to . Ta właściwość ma wpływ tylko na plik wykonywalny utworzony podczas publikowania, a nie kompilacji.
<PropertyGroup>
<AppHostRelativeDotNet>./relative/path/to/runtime</AppHostRelativeDotNet>
</PropertyGroup>
Ta właściwość została wprowadzona w .NET 9.
EnableComHosting
Właściwość wskazuje, że zestaw zapewnia serwer COM. Ustawienie wartości na wartość oznacza również, że parametr EnableDynamicLoading to .
<PropertyGroup>
<EnableComHosting>True</EnableComHosting>
</PropertyGroup>
Aby uzyskać więcej informacji, zobacz Expose .NET components to COM.
EnableDynamicLoading
Właściwość wskazuje, że zestaw jest składnikiem ładowanym dynamicznie. Składnik może być biblioteką COM lub biblioteką inną niż COM, która może być używana z hosta natywnego lub używana jako wtyczka. Ustawienie tej właściwości na wartość ma następujące efekty:
- Zostanie wygenerowany plik .runtimeconfig.json.
- Właściwość RollForward jest ustawiona na wartość .
- Odwołania nuGet są kopiowane lokalnie.
<PropertyGroup>
<EnableDynamicLoading>true</EnableDynamicLoading>
</PropertyGroup>
Wygenerowane właściwości pliku
Następujące właściwości dotyczą kodu w wygenerowanych plikach:
- DisableImplicitNamespaceImports
- ImplicitUsings
DisableImplicitNamespaceImports
Właściwość DisableImplicitNamespaceImports może służyć do wyłączania niejawnych importów przestrzeni nazw w projektach Visual Basic przeznaczonych dla .NET 6 lub nowszej wersji. Niejawne przestrzenie nazw to domyślne przestrzenie nazw importowane globalnie w projekcie Visual Basic. Ustaw tę właściwość na wartość , aby wyłączyć niejawne importy przestrzeni nazw.
<PropertyGroup>
<DisableImplicitNamespaceImports>true</DisableImplicitNamespaceImports>
</PropertyGroup>
ImplicitUsings
Właściwość ImplicitUsings może służyć do włączania i wyłączania niejawnych dyrektyw global using w projektach języka C#, które dotyczą .NET 6 lub nowszej wersji oraz języka C# 10 lub nowszej. Po włączeniu funkcji zestaw SDK .NET dodaje dyrektywy global using dla zestawu domyślnych przestrzeni nazw na podstawie typu zestawu SDK projektu. Ustaw tę właściwość na lub , aby włączyć niejawne dyrektywy. Aby wyłączyć niejawne dyrektywy, usuń właściwość lub ustaw ją na lub .
<PropertyGroup>
<ImplicitUsings>enable</ImplicitUsings>
</PropertyGroup>
Note
Szablony dla nowych projektów języka C#, które są przeznaczone dla .NET 6 lub nowszych, mają ImplicitUsings ustawioną na enable domyślnie.
Aby zdefiniować jawną dyrektywę , dodaj element Using .
Items
Elementy programu MSBuild są danymi wejściowymi w systemie kompilacji. Elementy są określane zgodnie z ich typem, czyli nazwą elementu. Na przykład i są dwoma typowymi typami elementów. Następujące dodatkowe typy elementów są udostępniane przez zestaw SDK .NET:
- AssemblyMetadata
- InternalsVisibleTo
- PackageReference
- TrimmerRootAssembly
- Using
Można użyć dowolnych atrybutów elementu standardowego Użyj polecenia , aby dodać nowy element i użyć polecenia , aby zmodyfikować istniejący element. Na przykład Update jest często używany do modyfikowania elementu, który został niejawnie dodany przez zestaw SDK .NET.
AssemblyMetadata
Element określa atrybut zestawu pary klucz-wartość. Metadane stają się kluczem, a metadane stają się wartością.
<ItemGroup>
<AssemblyMetadata Include="Serviceable" Value="True" />
</ItemGroup>
InternalsVisibleTo
Element generuje atrybut zestawu dla określonego zestawu znajomego.
<ItemGroup>
<InternalsVisibleTo Include="MyProject.Tests" />
</ItemGroup>
Jeśli zestaw znajomy jest podpisany, możesz określić opcjonalne metadane, aby określić jego pełny klucz publiczny. Jeśli nie określisz metadanych i jest dostępny, używany jest ten klucz. W przeciwnym razie do atrybutu nie zostanie dodany żaden klucz publiczny.
FrameworkReference
Element FrameworkReference definiuje odwołanie do platformy udostępnionej .NET.
Atrybut określa identyfikator struktury.
Fragment pliku projektu w poniższym przykładzie odwołuje się do platformy udostępnionej Microsoft.AspNetCore.App.
<ItemGroup>
<FrameworkReference Include="Microsoft.AspNetCore.App" />
</ItemGroup>
PackageReference
Element definiuje odwołanie do pakietu NuGet.
Atrybut określa identyfikator pakietu. Atrybut określa wersję lub zakres wersji. Aby uzyskać informacje na temat określania minimalnej wersji, maksymalnej wersji, zakresu lub dokładnego dopasowania, zobacz Zakresy wersji.
Fragment pliku projektu w poniższym przykładzie odwołuje się do pakietu System.Runtime .
<ItemGroup>
<PackageReference Include="System.Runtime" Version="4.3.0" />
</ItemGroup>
Zasoby zależności można również
<ItemGroup>
<PackageReference Include="Contoso.Utility.UsefulStuff" Version="3.6.0">
<PrivateAssets>all</PrivateAssets>
</PackageReference>
</ItemGroup>
Aby uzyskać więcej informacji, zobacz Odwołania do pakietów w plikach projektu.
TrimmerRootAssembly
Element umożliwia wykluczenie zestawu z przycinania. Przycinanie to proces usuwania nieużywanych części środowiska uruchomieniowego z spakowanej aplikacji. W niektórych przypadkach przycinanie może niepoprawnie usunąć wymagane odwołania.
Poniższy kod XML wyklucza zestaw z przycinania.
<ItemGroup>
<TrimmerRootAssembly Include="System.Security" />
</ItemGroup>
Aby uzyskać więcej informacji, zobacz Opcje przycinania.
Using
Element umożliwia globalne uwzględnienie przestrzeni nazw w projekcie języka C#, tak aby nie trzeba było dodawać dyrektywy dla przestrzeni nazw w górnej części plików źródłowych. Ten element jest podobny do elementu Import, który może być używany do tego samego celu w projektach Visual Basic. Ta właściwość jest dostępna od .NET 6.
<ItemGroup>
<Using Include="My.Awesome.Namespace" />
</ItemGroup>
Możesz również użyć elementu do zdefiniowania globalnych i dyrektyw.
<ItemGroup>
<Using Include="My.Awesome.Namespace" Alias="Awesome" />
</ItemGroup>
Przykład:
- Emituje
- Emituje
Aby uzyskać więcej informacji, zobacz aliasowane dyrektywy i dyrektywy.
Metadane elementu
Oprócz standardowych atrybutów elementu MSBuild następujące tagi metadanych elementu są udostępniane przez zestaw SDK .NET:
- CopyToPublishDirectory
- LinkBase
CopyToPublishDirectory
Metadane elementu MSBuild steruje, gdy element jest kopiowany do katalogu publikowania. W poniższej tabeli przedstawiono dozwolone wartości.
| Value | Description |
|---|---|
PreserveNewest |
Kopiuje element tylko wtedy, gdy uległ zmianie w lokalizacji źródłowej. |
IfDifferent |
Kopiuje element tylko wtedy, gdy został zmieniony w lokalizacji źródłowej lub docelowej. To ustawienie jest przydatne w sytuacjach, w których należy zresetować zmiany występujące po opublikowaniu. |
Always |
Zawsze kopiuje element. |
Never |
Nigdy nie kopiuje elementu. |
Z punktu widzenia wydajności zaleca się, ponieważ umożliwia kompilację przyrostową. Unikaj używania i używaj zamiast tego, co pozwala uniknąć operacji we/wy zapisu bez żadnego efektu.
<ItemGroup>
<None Update="appsettings.Development.json" CopyToOutputDirectory="PreserveNewest" CopyToPublishDirectory="PreserveNewest" />
</ItemGroup>
LinkBase
W przypadku elementu spoza katalogu projektu i jego podkatalogów element docelowy publikowania używa metadanych Link elementu, aby określić, gdzie skopiować element.
Link określa również, jak elementy spoza drzewa projektu są wyświetlane w oknie Eksplorator rozwiązań Visual Studio.
Jeśli nie określono elementu spoza stożka projektu, wartość domyślna to . umożliwia określenie rozsądnego folderu podstawowego dla elementów spoza stożka projektu. Hierarchia folderów w folderze podstawowym jest zachowywana za pomocą polecenia . Jeśli nie zostanie określony, zostanie pominięty ze ścieżki .
<ItemGroup>
<Content Include="..\Extras\**\*.cs" LinkBase="Shared"/>
</ItemGroup>
Na poniższej ilustracji przedstawiono sposób wyświetlania pliku dołączonego za pośrednictwem poprzedniego elementu Include glob w Eksplorator rozwiązań.
Zobacz także
- Dokumentacja schematu programu MSBuild
- Typowe właściwości programu MSBuild
- Właściwości programu MSBuild dla pakietu NuGet
- Właściwości programu MSBuild dla przywracania nuGet
- Dostosowywanie kompilacji