GenerateResource – úloha

Převádí soubory .txt a .resx (formát prostředků založený na JAZYCE XML) a binární .resources soubory modulu CLR (Common Language Runtime), které lze vložit do binárního spustitelného souboru modulu runtime nebo zkompilovat do satelitních sestavení. Tato úloha se obvykle používá k převodu .txt souborů nebo .resx k souborům .resources . Úloha GenerateResource je funkčně podobná resgen.exe.

Parametry

Následující tabulka popisuje parametry GenerateResource úlohy.

Parametr Popis
AdditionalInputs Volitelný ITaskItem[] parametr.

Obsahuje další vstupy pro kontrolu závislostí provedenou touto úlohou. Například soubory projektu a cíle by obvykle měly být vstupy, takže pokud jsou aktualizovány, všechny zdroje se znovu vygenerují.
EnvironmentVariables Volitelný String[] parametr.

Určuje pole párů název-hodnota proměnných prostředí, které mají být předány do spawned resgen.exe kromě (nebo selektivní přepsání) normální blok prostředí.
ExcludedInputPaths Volitelný ITaskItem[] parametr.

Určuje pole položek, které určují cesty, ze kterých budou sledované vstupy ignorovány během kontroly aktuálního stavu.
ExecuteAsTool Volitelný Boolean parametr.

Pokud true, spustí tlbimp.exe a aximp.exez příslušné cílové architektury out-of-proc vygenerovat nezbytné obálky sestavení. Tento parametr umožňuje cílení na více .ResolveComReferences
FilesWritten Volitelný ITaskItem[] výstupní parametr.

Obsahuje názvy všech souborů zapsaných na disk. To zahrnuje soubor mezipaměti( pokud existuje). Tento parametr je užitečný pro implementace Clean.
MinimalRebuildFromTracking Volitelný Boolean parametr.

Získá nebo nastaví přepínač, který určuje, zda bude použito sledované přírůstkové sestavení. Pokud trueje zapnuté přírůstkové sestavení, jinak se vynutí opětovné sestavení.
NeverLockTypeAssemblies Volitelný Boolean parametr.

Získá nebo nastaví logickou hodnotu, která určuje, zda vytvořit novou AppDomain pro vyhodnocení prostředků (.resx) souborů (true) nebo vytvoření nové AppDomain pouze v případech, kdy soubory prostředků odkazují na sestavení uživatele (false).
OutputResources Volitelný ITaskItem[] výstupní parametr.

Určuje název vygenerovaných souborů, například .resources souborů. Pokud nezadáte název, použije se název odpovídajícího vstupního souboru a .resources vytvořený soubor se umístí do adresáře, který obsahuje vstupní soubor.
PublicClass Volitelný Boolean parametr.

Pokud truevytvoří třídu prostředků silného typu jako veřejnou třídu.
References Volitelný String[] parametr.

Odkazy na načtení typů v .resx souborech z. .resx datové prvky souboru mohou mít typ .NET. Při čtení souboru .resx je nutné tento typ vyřešit. Obvykle se úspěšně vyřeší pomocí standardních pravidel načítání typu. Pokud zadáte sestavení, Referencesbudou mít přednost.

Tento parametr není vyžadován pro prostředky se silnými typy.
SdkToolsPath Volitelný String parametr.

Určuje cestu k nástrojům sady SDK, například resgen.exe.
Sources Požadovaný parametr ITaskItem[].

Určuje položky, které se mají převést. Položky předané tomuto parametru musí mít jednu z následujících přípon souborů:

- .txt: Určuje příponu textového souboru, který se má převést. Textové soubory můžou obsahovat pouze řetězcové prostředky.
- .resx: Určuje příponu pro soubor prostředků založený na jazyce XML, který se má převést.
- .restext: Určuje stejný formát jako .txt. Toto jiné rozšíření je užitečné, pokud chcete jasně odlišit zdrojové soubory, které obsahují prostředky z jiných zdrojových souborů v procesu sestavení.
- .resources: Určuje příponu souboru prostředků, který se má převést.
StateFile Volitelný ITaskItem parametr.

Určuje cestu k volitelnému souboru mezipaměti, který se používá k urychlení kontroly závislostí odkazů ve vstupních souborech .resx .
StronglyTypedClassName Volitelný String parametr.

Určuje název třídy pro třídu prostředků silného typu. Pokud tento parametr není zadaný, použije se základní název souboru prostředků.
StronglyTypedFilename Volitelný ITaskItem parametr.

Určuje název souboru zdrojového souboru. Pokud tento parametr není zadán, název třídy se použije jako základní název souboru s rozšířením závislým na jazyce. Příklad: MyClass.cs.
StronglyTypedLanguage Volitelný String parametr.

Určuje jazyk, který se má použít při generování zdroje třídy pro prostředek silného typu. Tento parametr musí odpovídat přesně jednomu z jazyků používaných CodeDomProvider. Například: VB nebo C#.

Předáním hodnoty tomuto parametru dáváte úloze pokyn, aby vygeneroval prostředky se silnými typy.
StronglyTypedManifestPrefix Volitelný String parametr.

Určuje obor názvů prostředků nebo předponu manifestu, která se má použít ve vygenerovaném zdroji třídy pro prostředek silného typu.
StronglyTypedNamespace Volitelný String parametr.

Určuje obor názvů, který se má použít pro vygenerovaný zdroj třídy pro prostředek silného typu. Pokud tento parametr není zadaný, všechny prostředky silného typu jsou v globálním oboru názvů.
TLogReadFiles Volitelný ITaskItem[] parametr jen pro čtení.

Získá pole položek, které představují protokoly sledování čtení.
TLogWriteFiles Volitelný ITaskItem[] parametr jen pro čtení.

Získá pole položek, které představují protokoly sledování zápisu.
ToolArchitecture Volitelný System.String parametr.

Používá se k určení, zda tracker.exe musí být použit k vytvoření ResGen.exe.

Měl by být parsovatelný pro člena výčtu ExecutableType . Pokud String.Emptyk určení výchozí architektury použije heuristika. Měl by být parsovatelný pro člena výčtu Microsoft.Build.Utilities.ExecutableType.
TrackerFrameworkPath Volitelný String parametr.

Určuje cestu k příslušnému umístění rozhraní .NET Framework, které obsahuje FileTracker.dll.

Pokud je nastavena, uživatel přebírá odpovědnost za zajištění, že bitness FileTracker.dll, který předává, odpovídá bitness ResGen.exe, kterou hodlá použít. Pokud není nastavená, úloha rozhoduje o vhodném umístění na základě aktuální verze rozhraní .NET Framework.
TrackerLogDirectory Volitelný String parametr.

Určuje zprostředkující adresář, do kterého se umístí protokoly sledování spuštěné z tohoto úkolu.
TrackerSdkPath Volitelný String parametr.

Určuje cestu k příslušnému umístění sady Windows SDK, které obsahuje Tracker.exe.

Pokud je nastavena, uživatel přebírá odpovědnost za zajištění, že bitness Tracker.exe, který předává, odpovídá bitness ResGen.exe, kterou hodlá použít. Pokud není nastavená, úloha rozhoduje o příslušném umístění na základě aktuální sady Windows SDK.
TrackFileAccess Volitelný Boolean parametr.

Pokud je hodnota true, použije se adresář vstupního souboru k překladu relativních cest k souborům.
UsePreserializedResources Volitelný Boolean parametr.

Pokud trueurčuje, že prostředky bez řetězce mají být serializovány namísto PreserializedResourceWriterResourceWriter, které nejsou podporovány v .NET Core nebo .NET 5 nebo novější.
UseSourcePath Volitelný Boolean parametr.

Pokud trueurčuje, že se má adresář vstupního souboru použít k překladu relativních cest k souborům.

Poznámky

Vzhledem k tomu, že .resx soubory můžou obsahovat odkazy na jiné soubory prostředků, nestačí jednoduše porovnat .resx časové razítka a .resources zjistit, jestli jsou výstupy aktuální. Místo toho se GenerateResource úkol řídí odkazy v .resx souborech a kontroluje také časová razítka propojených souborů. To znamená, že byste neměli obecně používat Inputs a Outputs atributy v cíli obsahujícím GenerateResource úlohu, protože to může způsobit, že se přeskočí, když se má skutečně spustit.

Kromě výše uvedených parametrů tato úloha dědí parametry z TaskExtension třídy, která sama dědí z Task třídy. Seznam těchto dalších parametrů a jejich popisů naleznete v tématu TaskExtension základní třída.

Při použití nástroje MSBuild 4.0 k cílení projektů .NET 3.5 může sestavení selhat u prostředků x86. Chcete-li tento problém vyřešit, můžete vytvořit cíl jako sestavení AnyCPU.

Parametr UsePreserializedResources získá hodnotu z vlastnosti $(GenerateResourceUsePreserializedResources) v normálním procesu sestavení .NET. Tato vlastnost je ve výchozím nastavení nastavena true v projektech a projektech .NET Core, které používají .NET 5 nebo novější. Můžete nastavit $(GenerateResourceUsePreserializedResources) tak, aby true sada .NET SDK umožňovala sestavování projektů, které cílí na rozhraní .NET Framework 4.6.1 nebo novější, které používají jiné než řetězcové prostředky. System.Resources.Extensions Sestavení musí být dostupné za běhu. Je k dispozici v .NET Core 3.0 a novějších a .NET 5 a novějších a lze ji použít v rozhraní .NET Framework 4.6.1 nebo novějším prostřednictvím PackageReference.|

Příklad

Následující příklad používá GenerateResource úlohu k vygenerování .resources souborů ze souborů určených kolekcí Resx položek.

<GenerateResource
    Sources="@(Resx)"
    OutputResources="@(Resx->'$(IntermediateOutputPath)%(Identity).resources')">
    <Output
        TaskParameter="OutputResources"
        ItemName="Resources"/>
</GenerateResource>

Úloha GenerateResource používá <LogicalName> metadata <EmbeddedResource> položky k pojmenování prostředku, který je vložen do sestavení.

Za předpokladu, že sestavení má název myAssembly, následující kód vygeneruje vložený prostředek s názvem someQualifier.someResource.resources:

<ItemGroup>
    <EmbeddedResource Include="myResource.resx">
        <LogicalName>someQualifier.someResource.resources</LogicalName>
    </EmbeddedResource>
</ItemGroup>

<LogicalName> Bez metadat by se prostředek pojmenoval myAssembly.myResource.resources. Tento příklad platí pouze pro proces sestavení jazyka Visual Basic a Visual C#.

Viz také