FolderCustomNamespaceRes

FolderCustomNamespaceRes

我有一个C#类库,其中包含几个组织在文件夹中的资源文件。由于我希望生成的类全部在同一个命名空间中,因此我在设置每个资源文件的CustomToolNamespace属性。

但是,我通过Reflector发现,尽管所有类都是在同一个命名空间中生成的,但是嵌入式资源的路径包含放置资源文件的目录名称。

例如,在一个将FolderCustomNamespaceRes.resx放置在名为Folder的目录中的项目中。

删除了无效的ImageShack链接

在FolderCustomNamespaceRes.resx的CustomToolNamespace设置为PublicResourcesTest的情况下,Reflector显示嵌入式资源程序集的路径是PublicResourcesTest。 文件夹 .FolderCustomNamespaceRes.resources

删除了无效的ImageShack链接

这是错误还是我错过了什么?

最佳答案

经过一些搜索,我发现可以通过在.cspproj文件中添加元数据来控制嵌入式资源的 list 名称。

在您拥有类似的东西之前:

<EmbeddedResource Include="Folder\FolderCustomNamespaceRes.resx">
   <Generator>PublicResXFileCodeGenerator</Generator>
   <LastGenOutput>FolderCustomNamespaceRes.Designer.cs</LastGenOutput>
   <CustomToolNamespace>PublicResourcesTest</CustomToolNamespace>
</EmbeddedResource>

为了控制 list 名称,您必须添加:
<EmbeddedResource Include="Folder\FolderCustomNamespaceRes.resx">
   ....
   <LogicalName>$(RootNamespace).FolderCustomNamespaceRes.resources</LogicalName>
</EmbeddedResource>

09-06 22:24