Visual Studio资源生成 - 自定义工具命名空间

时间:2010-01-11 17:03:16

标签: .net visual-studio visual-studio-2008

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

然而,我通过Reflector发现虽然这些类都是在同一名称空间中生成的,但嵌入式资源的路径包含放置资源文件的目录名。

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

删除了死亡的ImageShack链接

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

删除了死亡的ImageShack链接

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

2 个答案:

答案 0 :(得分:7)

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

之前你会有:

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

要控制您必须添加的清单名称:

<EmbeddedResource Include="Folder\FolderCustomNamespaceRes.resx">
   ....
   <LogicalName>$(RootNamespace).FolderCustomNamespaceRes.resources</LogicalName>
</EmbeddedResource>

答案 1 :(得分:0)

这是由IDE自动完成的,因此它不是一个错误,但不幸的是,它可以抑制此行为的唯一方法是使用ReSharper概述here