Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Utöver de mer traditionella sammansättningarna kan NuGet-paket ibland lägga till anpassade byggmål eller egenskaper till projekt som använder paketet.
Detta kan uppnås genom att lägga till en giltig MSBuild-fil, i formuläret <package_id>.targets eller <package_id>.props (till exempel Contoso.Utility.UsefulStuff.targets) i projektets byggmappar.
Skapa mappar
Allt eftersom NuGet har utvecklats har olika mappar för build .props och .targets lagts till.
| Mapp | NuGet-version | Använd |
|---|---|---|
| build | 2.5+ | Skapa logik för varje ramverk i ett projekt. |
| buildMultiTargeting | 4.0+ | Skapa logik för outer build projekt som är inriktade på flera ramverk. Endast PackageReference. |
| buildTransitive | 5.0+ | Skapa logik för tillgångar som flödar transitivt till alla förbrukande projekt. Se funktionssidan . Endast PackageReference. |
Ramverksspecifik byggmapp
Alla 3 byggmappar följer samma mönster för att bestämma den lämpligaste filen baserat på projektets målramverk.
Filer i rotversionsmappen build/<package_id>.targets och build/<package_id>.props anses lämpliga för alla målramverk.
Om du vill tillhandahålla ramverksspecifika filer placerar du dem först i lämpliga undermappar, till exempel följande:
\build
\netstandard1.4
\Contoso.Utility.UsefulStuff.props
\Contoso.Utility.UsefulStuff.targets
\net462
\Contoso.Utility.UsefulStuff.props
\Contoso.Utility.UsefulStuff.targets
Föredrar att använda ramverksspecifika byggmappar när det är lämpligt för att undvika falska positiva installationer i projekt som kanske inte stöds av ditt paket.
Observera att om ett paket inte har några filer i mapparna lib eller ref och endast filer under en ramverksspecifik byggmapp anses paketet vara kompatibelt med alla projekt. Senaste versionerna av paketverktygen utlöser NU5127-varningen när sådana paket skapas.
Projekt som förbrukar paket med byggfiler
PackageReference-projekt
.props och .targets läggs inte till i projektfilen utan görs i stället tillgängliga via {projectName}.nuget.g.targets och {projectName}.nuget.g.props. Dessa filer genereras automatiskt när återställningen körs.
När ett projekt riktar in sig på mer än ett ramverk villkoras importen till dessa filer på målramverkets namn.
MSBuild .props och .targets filer för målinriktning för flera ramverk kan placeras i \buildMultiTargeting katalogen.
När importen genereras anges ett villkor för att egenskapen $(TargetFramework) MSBuild är tom.
paket.config-projekt
När NuGet installerar ett paket med \build-filer, lägger det till <Import>-element i MSBuild-projektfilen som pekar på .targets och .props-filerna. (.props läggs till överst i projektfilen. .targets läggs till längst ned.) Ett separat villkorsstyrt MSBuild-element <Import> läggs till för varje målramverk.
Redigera paket med MSBuild-rekvisita och mål
Du kan använda något av följande verktyg för att inkludera MSBuild .props och .targets i ditt paket.
Vägledning för innehållet i MSBuild-rekvisita och mål
NuGet begränsar inte hur du skapar .props och .targets eftersom de varierar beroende på paketförfattarens behov och själva målprojekten.
Det finns några saker som inte får göras i paket" .props och .targets, till exempel att inte ange egenskaper och objekt som påverkar återställningen, eftersom de automatiskt undantas.
Några exempel på egenskaper som inte får läggas till eller uppdateras: TargetFramework, TargetFrameworkMoniker, TargetPlatformMoniker, AssetTargetFallback osv.
Några exempel på objekt som inte får läggas till eller uppdateras: PackageReference, PackageVersion, PackageDownload osv.