I have a C# class library that contains several resources files organized in folders. Since I want the generated classes to be all in the same namespace I'm setting the CustomToolNamespace property of each resource file.
However I discovered through Reflector that although the classes are all being generated in the same namespace the path to the embedded resources contains the directory name in which the resource file is placed.
For example in a project where FolderCustomNamespaceRes.resx is placed inside a directory named Folder.
removed dead ImageShack link
And where CustomToolNamespace for FolderCustomNamespaceRes.resx is set to PublicResourcesTest, Reflector shows that the path to the embedded resource assembly is PublicResourcesTest.Folder.FolderCustomNamespaceRes.resources
removed dead ImageShack link
Is this a bug or am I missing something?
After some search I found out that the manifest name of the embedded resource can be controlled by adding metadata in the .cspproj
file.
Before you would have something like:
<EmbeddedResource Include="Folder\FolderCustomNamespaceRes.resx">
<Generator>PublicResXFileCodeGenerator</Generator>
<LastGenOutput>FolderCustomNamespaceRes.Designer.cs</LastGenOutput>
<CustomToolNamespace>PublicResourcesTest</CustomToolNamespace>
</EmbeddedResource>
And to control the manifest name you would have to add:
<EmbeddedResource Include="Folder\FolderCustomNamespaceRes.resx">
....
<LogicalName>$(RootNamespace).FolderCustomNamespaceRes.resources</LogicalName>
</EmbeddedResource>
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With