Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Visual Studio Resource Generation - Custom Tool Namespace

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?

like image 498
João Angelo Avatar asked Jan 11 '10 17:01

João Angelo


1 Answers

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>
like image 156
João Angelo Avatar answered Oct 26 '22 16:10

João Angelo