Нежелательные библиотеки, специфичные для библиотек DLL, скопированные в каталог bin
Я использую visual studio 2013 и Свободная проверка 5.6.2
Я вижу, что после сборки в папке bin он копирует все специфические для культуры FluentValidation.resources.dll
, которые, кажется, упоминаются в файле .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" />
Но мне это не нужно в папке bin
, потому что проект не поддерживает какие-либо специфические для культуры сообщения.
Итак, как я могу сказать vs-build игнорировать эти специфические DLL для культуры?
Ответы
Ответ 1
Моим решением было добавить эту цель в конец файла .csproj до закрытия тега проекта.
<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>
Это не очень, но он выполняет свою работу. Если вам нужен определенный ресурс для культуры, просто удалите соответствующую строку из списка. Если в будущем обновлении добавляется новая культура, которую вы не хотите, добавьте ее в список.
Лучший вариант - попросить разработчика разделить ресурсы на несколько nugets, таким образом вы могли бы просто добавить нужные. Я пока придерживаюсь этого решения, пока кто-то не придумает лучшего.
Теперь вы можете найти свое решение в официальной вики проекта: https://github.com/JeremySkinner/FluentValidation/wiki/f.-Localization (внизу страницы)
Ответ 2
У меня была такая же проблема с внешней библиотекой, я добавляю post-build script в свойствах проекта Visual Studio, которые удаляют все папки (для меня все в порядке, в противном случае установлен список dirs) в каталоге вывода:
FOR /D %%d IN ($(TargetDir)*) DO RMDIR /S /Q %%d