我有一个C#类库,其中包含按文件夹组织的多个资源文件。由于我希望生成的类都在同一个命名空间中,因此我设置了每个资源文件的CustomToolNamespace属性。
然而,我通过Reflector发现虽然这些类都是在同一名称空间中生成的,但嵌入式资源的路径包含放置资源文件的目录名。
例如,在 FolderCustomNamespaceRes.resx 放置在名为 Folder 的目录中的项目中。
删除了死亡的ImageShack链接
将 FolderCustomNamespaceRes.resx 的CustomToolNamespace设置为PublicResourcesTest,Reflector显示嵌入式资源程序集的路径为PublicResourcesTest。文件夹 .FolderCustomNamespaceRes.resources
删除了死亡的ImageShack链接
这是一个错误还是我错过了什么?
答案 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。