リソースがあるプロジェクトをビルドする
プロジェクトのローカライズ版を作成する場合、すべてのユーザー インターフェイス要素を言語別のリソース ファイルに分ける必要があります。 プロジェクトが文字列だけを使用している場合、リソース ファイルとしてテキスト ファイルを使用できます。 あるいは、.resx ファイルをリソース ファイルとして使用することもできます。
MSBuild を使用してリソースをコンパイルする
MSBuild とともに提供されている一般的なタスクのライブラリには、.resx ファイルまたはテキスト ファイルのリソースのコンパイルに利用できる GenerateResource
タスクが含まれています。 このタスクには、どのリソース ファイルをコンパイルするかを指定する Sources
パラメーターと、出力リソース ファイルの名前を指定する OutputResources
パラメーターが含まれています。 GenerateResource
タスクの詳細については、「GenerateResource タスク」を参照してください。
MSBuild を使用してリソースをコンパイルするには
プロジェクトのリソース ファイルを識別し、項目一覧かファイル名として
GenerateResource
タスクに渡します。GenerateResource
タスクのOutputResources
パラメーターを指定します。これによって、出力リソース ファイルに名前を設定できます。OutputResources
パラメーターの値を項目に保存するため、タスクのOutput
要素を使用します。Output
要素から作成された項目を別のタスクへの入力として使用します。
例 1
次のコード例では、コンパイルされたリソース ファイルである alpha.resources と beta.resources を GenerateResource
タスクの OutputResources
属性に含めることと、これらの 2 ファイルを Resources
項目一覧に含めることを、Output
要素によってどのように指定するかを示します。 それらの .resources ファイルを同名の項目の集合として識別すれば、Csc タスクのような別のタスクの入力として簡単に使用することができます。
このタスクは、Resgen.exe の /compile スイッチを使用するのと同じことです。
Resgen.exe /compile alpha.resx,alpha.resources /compile beta.txt,beta.resources
<GenerateResource
Sources="alpha.resx; beta.txt"
OutputResources="alpha.resources; beta.resources">
<Output TaskParameter="OutputResources"
ItemName="Resources"/>
</GenerateResource>
例 2
次のプロジェクト例には、リソースをコンパイルする GenerateResource
タスクと、ソース コード ファイルとコンパイルされたリソース ファイルの両方をコンパイルする Csc
タスクの 2 つのタスクが含まれています。 GenerateResource
タスクでコンパイルされたリソース ファイルは Resources
項目に保存され、Csc
タスクに渡されます。
<Project DefaultTargets = "Build"
xmlns="http://schemas.microsoft.com/developer/msbuild/2003" >
<Target Name="Resources">
<GenerateResource
Sources="alpha.resx; beta.txt"
OutputResources="alpha.resources; beta.resources">
<Output TaskParameter="OutputResources"
ItemName="Resources"/>
</GenerateResource>
</Target>
<Target Name="Build" DependsOnTargets="Resources">
<Csc Sources="hello.cs"
Resources="@(Resources)"
OutputAssembly="hello.exe"/>
</Target>
</Project>
関連するコンテンツ
フィードバック
https://aka.ms/ContentUserFeedback」を参照してください。
以下は間もなく提供いたします。2024 年を通じて、コンテンツのフィードバック メカニズムとして GitHub の issue を段階的に廃止し、新しいフィードバック システムに置き換えます。 詳細については、「フィードバックの送信と表示