Estoy usando Visual Studio 2013 y Fluent Validation 5.6.2
Veo que después de compilar en la carpeta bin, copia todo el FluentValidation.resources.dll específico de la cultura que parece mencionarse en el archivo .nuspec
> <file src="lib\NET35\de\FluentValidation.resources.dll" > target="lib\NET35\de\FluentValidation.resources.dll" /> > <file src="lib\NET35\es\FluentValidation.resources.dll" target="lib\NET35\es\FluentValidation.resources.dll" /> > <file src="lib\NET35\fr\FluentValidation.resources.dll" target="lib\NET35\fr\FluentValidation.resources.dll" /> > <file src="lib\NET35\it\FluentValidation.resources.dll" target="lib\NET35\it\FluentValidation.resources.dll" /> > <file src="lib\NET35\nl\FluentValidation.resources.dll" target="lib\NET35\nl\FluentValidation.resources.dll" /> > <file src="lib\NET35\pt\FluentValidation.resources.dll" target="lib\NET35\pt\FluentValidation.resources.dll" /> > <file src="lib\NET35\sv\FluentValidation.resources.dll" target="lib\NET35\sv\FluentValidation.resources.dll" /> Pero no los necesito en la carpeta bin , porque el proyecto no admite ningún mensaje específico de cultura.
Entonces, ¿cómo puedo decirle a vs-build que ignore estos archivos DLL específicos de la cultura?
Mi solución fue agregar este objetivo al final del archivo .csproj antes de la etiqueta de cierre del proyecto .
<Target Name="AfterPackage" AfterTargets="CopyAllFilesToSingleFolderForPackage" /> <ItemGroup> <FluentValidationExcludedCultures Include="cs;da;de;es;fa;fi;fr;it;ko;mk;nl;pl;pt;ru;sv;tr;zh-CN"> <InProject>false</InProject> </FluentValidationExcludedCultures> </ItemGroup> <Target Name="RemoveTranslationsAfterBuild" AfterTargets="AfterBuild"> <RemoveDir Directories="@(FluentValidationExcludedCultures->'$(OutputPath)%(Filename)')" /> </Target> <Target Name="RemoveTranslationsAfterPackage" AfterTargets="AfterPackage"> <RemoveDir Directories="@(FluentValidationExcludedCultures->'$(_PackageTempDir)\$(OutputPath)%(Filename)')" /> </Target>No es bonito, pero hace el trabajo. Si necesita algún recurso específico de la cultura, simplemente elimine la línea correspondiente de la lista. Si una actualización futura agrega una nueva cultura que no desea, agréguela a la lista.
La mejor opción sería pedirle al desarrollador que separe los recursos en varios nugets, de esta manera solo podría agregar los necesarios. Me quedaré con esta solución, por ahora, hasta que alguien encuentre una mejor.
Ahora puedes encontrar mi solución en la wiki oficial del proyecto: https://github.com/JeremySkinner/FluentValidation/wiki/f.-Localization (en la parte inferior de la página)
tuve el mismo problema con la biblioteca externa, agregué un script posterior a la compilación en las propiedades del proyecto de Visual Studio, que elimina todas las carpetas (para mí está bien, de lo contrario, configure la lista de directorios) en el directorio de salida:
FOR /D %%d IN ($(TargetDir)*) DO RMDIR /S /Q %%d