2010-01-11 19 views
10

Tengo una biblioteca de clases C# que contiene varios archivos de recursos organizados en carpetas. Como quiero que las clases generadas estén todas en el mismo espacio de nombres, estoy configurando la propiedad CustomToolNamespace de cada archivo de recursos.Generación de recursos de Visual Studio - Espacio de nombres de herramientas personalizadas

Sin embargo, descubrí a través de Reflector que aunque todas las clases se están generando en el mismo espacio de nombres, la ruta a los recursos incrustados contiene el nombre del directorio en el que se coloca el archivo de recursos.

Por ejemplo, en un proyecto donde FolderCustomNamespaceRes.resx se coloca dentro de un directorio llamado carpeta.

eliminado enlace ImageShack muertos

Y donde CustomToolNamespace para FolderCustomNamespaceRes.resx se establece en PublicResourcesTest, Reflector muestra que el camino a la asamblea recurso incrustado es PublicResourcesTest. carpeta .FolderCustomNamespaceRes.resources

eliminado enlace ImageShack muertos

Es esto un error o me estoy perdiendo algo?

Respuesta

7

Después de buscar, descubrí que el nombre manifiesto del recurso incrustado se puede controlar agregando metadatos en el archivo .cspproj.

Antes de que tendría algo como:

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

Y para controlar el nombre de manifiesto que tendría que añadir:

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

Esto lo realiza automáticamente el IDE, por lo que no es un error, pero lamentablemente la única forma en que parece que puede suprimir este comportamiento es mediante el uso de ReSharper como se describe here.

+0

Esa opción ReSharper no es aplicable al caso en cuestión. La generación de recursos está controlada por una herramienta personalizada proporcionada por Visual Studio. –

Cuestiones relacionadas