我有一个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>