Отключить папки культуры Dll на компиляции
Я использую 2 dll (Microsoft.Expression.Interactions.dll
и System.Windows.Interactivity.dll
), которые при компиляции родительского приложения создают множество папок для культуры:
![]()
И внутри каждого есть 2 dll (Microsoft.Expression.Interactions.resources.dll
и System.Windows.Interactivity.resources.dll
). Я googled вокруг, и я просто не могу найти ничего о том, как остановить этот раздражающий автоматически сгенерированный контент.
Ответы
Ответ 1
Примените атрибут System.Resources.NeutralResourcesLanguageAttribute в области сборки, например:
[assembly: System.Resources.NeutralResourcesLanguageAttribute("en")]
(Хорошим местом для этого будет файл AssemblyInfo.cs в разделе свойств проекта)
Ответ 2
Существует два способа решения этой проблемы:
- copy
System.Windows.Interactivity.dll
и добавьте ссылку непосредственно к этому файлу
- удалить эти папки из:
\Program Files (x86)\Microsoft SDKs\Expression\Blend\.NETFramework\v4.5\Libraries
Ссылки по теме:
Исходное решение
Сгенерированные файлы caliburn.micro в каталоге выпуска
Ответ 3
Я использую другое решение. Вы можете настроить событие Post-build для своего проекта в Vistual Studio, который удалит избыточные папки:
rd /s /q "de", "en", "es", "fr", "it", "ja", "ko", "ru", "zh-Hans", "zh-Hant"
Это решение менее инвазивно, чем удаляет папки из папки sdk.
Ответ 4
Fwiw, я смог сбросить их из моей сборки, которая использовала system.windows.interactivity.dll, изменив мой csproj:
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="12.0" DefaultTargets="Build"
xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Import Project="$( **<CHOPPED**>... />
<PropertyGroup>
<!--added this line for system.windows.interactivity.dll to dump the localized dll's-->
<SupportedCultures>en-US</SupportedCultures>