2015-08-24 1 views
3

Je construis une bibliothèque C# pour être empaquetée avec NuGet. Il contient des traductions de code d'erreur dans un fichier .resx dans le répertoire Resources appelé Errors.en.resx. Le fichier a l'option "Build Action" définie sur "Embedded Resource" (que j'ai confirmé dans le fichier .csproj), mais lorsque le projet est construit, la ressource se retrouve dans une DLL séparée dans un dossier "en".Ressource embarquée dans le paquet nuget

Cela fonctionne très bien, mais lors de l'empaquetage avec NuGet le dossier "en" est manqué, ce qui signifie que les tentatives d'utiliser ResourceManager pour récupérer les messages échouent.

Idéalement, j'aimerais que la ressource soit incorporée dans le fichier .dll principal, mais à défaut, je me contenterai d'ajouter la ressource dll au paquet NuGet. Divers changements aux paramètres et aux changements de spécifications de NuGet n'ont pas encore réussi.

Répondre

2

En fin de compte la solution la plus simple est d'ajouter explicitement le fichier de ressources dans le NuGet Spec:

<files> 
    <file src="bin\$configuration$\en\*.dll" target="lib\net45\en" /> 
    </files> 

Référence: Specifying Files to Include in the Package