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.
När MSBuild kompilerar ett .NET Core-projekt konverteras XML-resursfiler, som har filtillägget .resx , till binära .resources-filer . De binära filerna bäddas in i kompilatorns utdata och kan läsas av ResourceManager. Den här artikeln beskriver hur MSBuild väljer ett namn för varje .resources-fil .
Tips/Råd
Om du uttryckligen lägger till en resurs i projektfilen och den även inkluderas som en standardglob i .NET Core, får du ett byggfel. Om du vill inkludera resursfiler manuellt som EmbeddedResource objekt anger du EnableDefaultEmbeddedResourceItems egenskapen till false.
Standardnamn
I .NET Core 3.0 och senare används standardnamnet för ett resursmanifest när båda följande villkor uppfylls:
- Resursfilen ingår inte uttryckligen i projektfilen som ett EmbeddedResourceobjekt medLogicalName,ManifestResourceNameellerDependentUponmetadata.
- Egenskapen EmbeddedResourceUseDependentUponConventionär inte inställd påfalsei projektfilen. Som standard är den här egenskapen inställd påtrue. Mer information finns i EmbeddedResourceUseDependentUponConvention.
Om resursfilen samplaceras med en källfil (.cs eller .vb) med samma rotfilnamn, används det fullständiga namnet på den första typen som definieras i källfilen för manifestfilens namn. Om MyNamespace.Form1 till exempel är den första typen som definierats i Form1.cs och Form1.cs är samlokaliserad med Form1.resx, är det genererade manifestnamnet för resursfilen MyNamespace.Form1.resources.
Logiskt namn-metadata
Om en resursfil uttryckligen ingår i projektfilen som ett EmbeddedResource objekt med LogicalName metadata LogicalName används värdet som manifestnamn. 
              LogicalName har företräde framför andra metadata eller inställningar.
Manifestnamnet för resursfilen som definieras i följande projektfilfragment är till exempel SomeName.resources.
<EmbeddedResource Include="X.resx" LogicalName="SomeName.resources" />
-eller-
<EmbeddedResource Include="X.fr-FR.resx" LogicalName="SomeName.resources" />
Anmärkning
- Om - LogicalNameinte anges fungerar inte en- EmbeddedResourcemed två punkter (- .) i filnamnet, vilket innebär att- GetManifestResourceNamesfilen inte returneras.- Följande exempel fungerar korrekt: - <EmbeddedResource Include="X.resx" />- Följande exempel fungerar inte: - <EmbeddedResource Include="X.fr-FR.resx" />
Metadata för ManifestResourceName
Om en resursfil uttryckligen ingår i projektfilen som ett EmbeddedResource objekt med ManifestResourceName metadata (och LogicalName saknas) ManifestResourceName används värdet, kombinerat med filnamnstillägget .resources, som manifestfilens namn.
Manifestnamnet för resursfilen som definieras i följande projektfilfragment är till exempel SomeName.resources.
<EmbeddedResource Include="X.resx" ManifestResourceName="SomeName" />
Manifestnamnet för resursfilen som definieras i följande projektfilfragment är SomeName.fr-FR.resources.
<EmbeddedResource Include="X.fr-FR.resx" ManifestResourceName="SomeName.fr-FR" />
BeroendePå-metadata
Om en resursfil uttryckligen ingår i projektfilen som ett EmbeddedResource objekt med DependentUpon metadata (och och LogicalNameManifestResourceName saknas) används information från källfilen som definierats av DependentUpon för resursmanifestfilens namn. Mer specifikt används namnet på den första typen som definieras i källfilen i manifestnamnet enligt följande: Namespace.Classname[. Kultur].resurser.
Manifestnamnet för resursfilen som definieras i följande projektfilfragment är till exempel Namespace.Classname.resources (där Namespace.Classname är den första klassen som definieras i MyTypes.cs).
<EmbeddedResource Include="X.resx" DependentUpon="MyTypes.cs">
Manifestnamnet för resursfilen som definieras i följande projektfilfragment är Namespace.Classname.fr-FR.resources (där Namespace.Classname är den första klassen som definieras i MyTypes.cs).
<EmbeddedResource Include="X.fr-FR.resx" DependentUpon="MyTypes.cs">
EmbeddedResourceUseDependentUponConvention-egenskap
Om EmbeddedResourceUseDependentUponConvention anges till false i projektfilen baseras varje resursmanifestfilnamn på rotnamnområdet för projektet och den relativa sökvägen från projektroten till .resx-filen . Mer specifikt är det genererade resursmanifestets filnamn RootNamespace.RelativePathWithDotsForSlashes.[ Kultur.]resurser. Det här är också den logik som används för att generera manifestnamn i .NET Core-versioner före 3.0.
Anmärkning
- Om RootNamespaceinte har definierats är det som standard projektnamnet.
- Om LogicalName,ManifestResourceNameellerDependentUponmetadata har angetts för ettEmbeddedResourceobjekt i projektfilen gäller inte den här namngivningsregeln för resursfilen.