GenerateResource (attività)
Converte tra .txt
file e .resx
(formato di risorse basato su XML) e file binari .resources
common Language Runtime che possono essere incorporati in un eseguibile binario di runtime o compilati in assembly satellite. Questa attività viene in genere usata per convertire o .resx
file .txt
in .resources
file. Dal punto di vista funzionale, l'attività GenerateResource
è simile a resgen.exe.
Parametri
Nella tabella che segue vengono descritti i parametri dell'attività GenerateResource
.
Parametro | Descrizione |
---|---|
AdditionalInputs |
Parametro ITaskItem[] facoltativo.Contiene input aggiuntivi per il controllo delle dipendenze eseguito da questa attività. Ad esempio, è in genere opportuno inserire come input i file di progetto e di destinazione, in modo da consentire la rigenerazione di tutte le risorse in caso di aggiornamento. |
EnvironmentVariables |
Parametro String[] facoltativo.Specifica una matrice di coppie nome/valore di variabili di ambiente che devono essere passate al file resgen.exe generato, oltre al normale blocco di ambiente (o all'esecuzione selettiva dell'override). |
ExcludedInputPaths |
Parametro ITaskItem[] facoltativo.Specifica una matrice di elementi che specificano i percorsi da cui gli input rilevati verranno ignorati durante il controllo aggiornato. |
ExecuteAsTool |
Parametro Boolean facoltativo.Se true , esegue i file tlbimp.exe e aximp.exe dal framework di destinazione appropriato in modalità out-of-process per generare gli assembly wrapper necessari. Questo parametro consente il multitargeting di ResolveComReferences . |
FilesWritten |
Parametro di output ITaskItem[] facoltativo.Contiene i nomi di tutti i file scritti nel disco, incluso, se presente, il file di cache. Questo parametro è particolarmente utile per le implementazioni di Clean. |
MinimalRebuildFromTracking |
Parametro Boolean facoltativo.Ottiene o imposta un'opzione che specifica se verrà usata la compilazione incrementale tracciata. Se true , viene attivata la compilazione incrementale. In caso contrario, verrà forzata una ricompilazione. |
NeverLockTypeAssemblies |
Parametro Boolean facoltativo.Ottiene o imposta un valore booleano che specifica se creare un nuovo oggetto AppDomain per valutare i file di risorse (resx) (true) o se creare un nuovo oggetto AppDomain solo quando i file di risorse fanno riferimento a un assembly dell'utente (false). |
OutputResources |
Parametro di output ITaskItem[] facoltativo.Specifica il nome dei file generati, ad esempio .resources i file. Se non si specifica un nome, viene usato il nome del file di input corrispondente e il .resources file creato viene inserito nella directory che contiene il file di input. |
PublicClass |
Parametro Boolean facoltativo.Se true , crea una classe di risorse fortemente tipizzata come classe pubblica. |
References |
Parametro String[] facoltativo.Riferimenti per caricare i tipi nei .resx file da. .resx gli elementi di dati di file possono avere un tipo .NET. Quando il file resx viene letto, questo tipo deve essere risolto. In genere, è possibile risolverlo correttamente usando le regole di caricamento dei tipi standard. Hanno la precedenza eventuali assembly specificati in References .Questo parametro non è obbligatorio per le risorse fortemente tipate. |
SdkToolsPath |
Parametro String facoltativo.Specifica il percorso degli strumenti SDK, ad esempio resgen.exe. |
Sources |
Parametro ITaskItem[] obbligatorio.Specifica gli elementi da convertire. Gli elementi passati a questo parametro devono avere una delle estensioni di file seguenti: - .txt : specifica l'estensione di un file di testo da convertire. I file di testo possono contenere solo risorse di tipo stringa.- RESX: specifica l'estensione di un file di risorse basato su XML da convertire. - RESTEXT: specifica lo stesso formato di TXT. Questa diversa estensione consente di distinguere chiaramente i file di origine che contengono risorse dagli altri file di origine nel processo di compilazione. - RESOURCES: specifica l'estensione di un file di risorse da convertire. |
StateFile |
Parametro ITaskItem facoltativo. Specifica il percorso di un file di cache facoltativo usato per accelerare il controllo delle dipendenze dei collegamenti nei file di input RESX. |
StronglyTypedClassName |
Parametro String facoltativo.Specifica il nome della classe per la classe di risorse fortemente tipizzata. Se questo parametro non è specificato, viene usato il nome base del file di risorse. |
StronglyTypedFilename |
Parametro ITaskItem facoltativo. Specifica il nome del file di origine. Se questo parametro non è specificato, viene usato il nome della classe come nome base e l'estensione viene determinata dal linguaggio. Ad esempio: MyClass.cs. |
StronglyTypedLanguage |
Parametro String facoltativo.Specifica il linguaggio da usare durante la generazione dell'origine della classe per la risorsa fortemente tipizzata. Questo parametro deve corrispondere esattamente a uno dei linguaggi usati da CodeDomProvider. Ad esempio, VB o C# .Passando un valore a questo parametro, si indica all'attività di generare risorse fortemente tipate. |
StronglyTypedManifestPrefix |
Parametro String facoltativo.Specifica lo spazio dei nomi delle risorse o il prefisso del manifesto da usare nell'origine della classe generata per la risorsa fortemente tipizzata. |
StronglyTypedNamespace |
Parametro String facoltativo.Specifica lo spazio dei nomi da usare per l'origine della classe generata per la risorsa fortemente tipizzata. Se questo parametro non viene specificato, tutte le risorse fortemente tipate si trovano nello spazio dei nomi globale. |
TLogReadFiles |
Parametro di sola lettura ITaskItem[] facoltativo.Ottiene una matrice di elementi che rappresentano i log di rilevamento delle operazioni di lettura. |
TLogWriteFiles |
Parametro di sola lettura ITaskItem[] facoltativo.Ottiene una matrice di elementi che rappresentano i log di rilevamento delle operazioni di scrittura. |
ToolArchitecture |
Parametro System.String facoltativo. Consente di determinare se per la generazione di ResGen.exe è necessario o meno usare Tracker.exe. Deve essere analizzabile rispetto a un membro dell'enumerazione ExecutableType. Se String.Empty , viene usata un'euristica per determinare un'architettura predefinita. Deve essere analizzabile rispetto a un membro dell'enumerazione Microsoft.Build.Utilities.ExecutableType. |
TrackerFrameworkPath |
Parametro String facoltativo.Specifica il percorso della posizione appropriata di .NET Framework in cui è contenuto il file FileTracker.dll. Se questo parametro è impostato, l'utente si assume la responsabilità di verificare che il numero di bit del file FileTracker.dll passato corrisponda al numero di bit del file ResGen.exe che intende usare. In caso contrario, la posizione appropriata viene stabilita dall'attività in base alla versione corrente di .NET Framework. |
TrackerLogDirectory |
Parametro String facoltativo.Specifica la directory intermedia in cui verranno inseriti i log di rilevamento risultanti dall'esecuzione di questa attività. |
TrackerSdkPath |
Parametro String facoltativo.Specifica il percorso della posizione appropriata di Windows SDK in cui è contenuto il file Tracker.exe. Se questo parametro è impostato, l'utente si assume la responsabilità di verificare che il numero di bit del file Tracker.exe passato corrisponda al numero di bit del file ResGen.exe che intende usare. In caso contrario, la posizione appropriata viene stabilita dall'attività in base alla versione corrente di Windows SDK. |
TrackFileAccess |
Parametro Boolean facoltativo. Se true, la directory del file di input viene usata per risolvere i percorsi di file relativi. |
UsePreserializedResources |
Parametro Boolean facoltativo.Se true , specifica che le risorse non stringa devono essere serializzate usando PreserializedResourceWriter invece di ResourceWriter, che non è supportato in .NET Core o .NET 5 o versione successiva. |
UseSourcePath |
Parametro Boolean facoltativo.Se true , specifica che è necessario usare la directory del file di input per risolvere i percorsi di file relativi. |
Osservazioni:
Poiché .resx
i file possono contenere collegamenti ad altri file di risorse, non è sufficiente confrontare semplicemente e .resources
i .resx
timestamp dei file per verificare se gli output sono aggiornati. L'attività GenerateResource
segue invece i collegamenti nei .resx
file e controlla anche i timestamp dei file collegati. Ne consegue che, in genere, non è consigliabile usare gli attributi Inputs
e Outputs
nella destinazione che contiene l'attività GenerateResource
. In questo modo, infatti, è possibile che l'attività venga ignorata anziché essere eseguita.
Oltre ai parametri elencati sopra, questa attività eredita i parametri dalla classe TaskExtension, che a sua volta eredita dalla classe Task. Per un elenco di questi parametri aggiuntivi e le rispettive descrizioni, vedere TaskExtension Base Class.
Se si usa MSBuild 4.0 come destinazione di progetti .NET 3.5, è possibile che la compilazione sulle risorse x86 non riesca. Per risolvere questo problema, è possibile compilare la destinazione come assembly AnyCPU.
Il parametro UsePreserializedResources
ottiene il relativo valore dalla proprietà $(GenerateResourceUsePreserializedResources)
nel normale processo di compilazione .NET. Questa proprietà è impostata su true
per impostazione predefinita nei progetti e nei progetti .NET Core che usano .NET 5 o versione successiva. È possibile impostare $(GenerateResourceUsePreserializedResources)
su true
per consentire a .NET SDK di compilare progetti destinati a .NET Framework 4.6.1 o versione successiva che usano risorse non stringa. L'assembly System.Resources.Extensions
deve essere disponibile in fase di esecuzione. È disponibile in .NET Core 3.0 e versioni successive e .NET 5 e versioni successive e può essere usato in .NET Framework 4.6.1 o versione successiva tramite PackageReference.|
Esempio
Nell'esempio seguente viene utilizzata l'attività GenerateResource
per generare .resources
file dai file specificati dalla Resx
raccolta di elementi.
<GenerateResource
Sources="@(Resx)"
OutputResources="@(Resx->'$(IntermediateOutputPath)%(Identity).resources')">
<Output
TaskParameter="OutputResources"
ItemName="Resources"/>
</GenerateResource>
L'attività GenerateResource
usa i <LogicalName>
metadati di un <EmbeddedResource>
elemento per denominare la risorsa incorporata in un assembly.
Supponendo che l'assembly sia denominato myAssembly, il codice seguente genera una risorsa incorporata denominata someQualifier.someResource.resources
:
<ItemGroup>
<EmbeddedResource Include="myResource.resx">
<LogicalName>someQualifier.someResource.resources</LogicalName>
</EmbeddedResource>
</ItemGroup>
Senza i <LogicalName>
metadati, la risorsa sarà denominata myAssembly.myResource.resources
. Questo esempio si applica solo a Visual Basic e al processo di compilazione di Visual C#.
Vedi anche
Commenti e suggerimenti
https://aka.ms/ContentUserFeedback.
Presto disponibile: Nel corso del 2024 verranno gradualmente disattivati i problemi di GitHub come meccanismo di feedback per il contenuto e ciò verrà sostituito con un nuovo sistema di feedback. Per altre informazioni, vedereInvia e visualizza il feedback per