AssignCulture 任务

此任务接受可能包含有效 .NET 区域性标识符字符串的项目列表作为文件名的一部分,并生成具有名为 Culture 包含相应区域性标识符的元数据的项。 例如,文件名 Form1。fr-fr.resx 具有嵌入的区域性标识符“fr-fr”,因此此任务生成一个文件名相同的项,元数据 Culture 等于 fr-fr。 该任务还会生成文件名列表,其中包含从文件名中删除的区域性。

任务参数

下表描述了 AssignCulture 任务的参数。

参数 描述
AssignedFiles 可选 ITaskItem[] 输出参数。

包含 Files 参数中收到的项列表,其中 Culture 元数据条目添加到每个项。

如果来自 Files 参数的传入项已包含 Culture 元数据项,则使用原始元数据项。

如果文件名包含有效的区域性标识符,则任务仅分配 Culture 元数据条目。 区域性标识符必须在文件名的最后两个点之间。
AssignedFilesWithCulture 可选 ITaskItem[] 输出参数。

包含具有 Culture 元数据项的 AssignedFiles 参数中的项的子集。
AssignedFilesWithNoCulture 可选 ITaskItem[] 输出参数。

包含 AssignedFiles 参数中没有 Culture 元数据项的子集。
CultureNeutralAssignedFiles 可选 ITaskItem[] 输出参数。

包含 AssignedFiles 参数中生成的项列表,但从文件名中删除区域性除外。

如果任务是有效的区域性标识符,则仅从文件名中删除区域性。
Files 必需 ITaskItem[] 参数。

指定要向其分配区域性的嵌入区域性名称的文件列表。 该任务会尝试确定每个文件是否是区域性特定的资源,如果是,则确定区域性。 若要跳过此检测过程并强制文件保持区域性中性,请将元数据条目 WithCulture 设置为 false
RespectAlreadyAssignedItemCulture 可选 bool 参数。

如果设置为 true - 已设置 Files 项参数上的区域性元数据,并且 CultureNeutralAssignedFiles 将填充 Files中未更改的文件名。

言论

除了本文中列出的参数之外,此任务还从 TaskExtension 类继承参数,该类本身继承自 Task 类。 有关这些附加参数及其说明的列表,请参阅 TaskExtension 基类

以下示例使用 ResourceFiles 项集合执行 AssignCulture 任务。

<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
    <ItemGroup>
        <ResourceFiles Include="MyResource1.fr.resx"/>
        <ResourceFiles Include="MyResource2.XX.resx"/>
    </ItemGroup>

    <Target Name="Culture">
        <AssignCulture
            Files="@(ResourceFiles)"
            <Output TaskParameter="AssignedFiles"
                ItemName="OutAssignedFiles"/>
            <Output TaskParameter="AssignedFilesWithCulture"
                ItemName="OutAssignedFilesWithCulture"/>
            <Output TaskParameter="AssignedFilesWithNoCulture"
                ItemName="OutAssignedFilesWithNoCulture"/>
            <Output TaskParameter="CultureNeutralAssignedFiles"
                ItemName="OutCultureNeutralAssignedFiles"/>
        </AssignCulture>
    </Target>
</Project>

下表描述了任务执行后输出项的值。 项元数据显示在项后的括号中。

项集合 内容
OutAssignedFiles MyResource1.fr.resx (Culture=“fr”)

MyResource2.XX.resx(无其他元数据)
OutAssignedFilesWithCulture MyResource1.fr.resx (Culture=“fr”)
OutAssignedFilesWithNoCulture MyResource2.XX.resx(无其他元数据)
OutCultureNeutralAssignedFiles MyResource1.resx (Culture=“fr”)

MyResource2.XX.resx(无其他元数据)

另请参阅