2つのdllを使用しています(Microsoft.Expression.Interactions.dll
およびSystem.Windows.Interactivity.dll
)親アプリケーションがコンパイルされると、カルチャフォルダのロードが作成されます。
そしてそれぞれの中に2つのdll(Microsoft.Expression.Interactions.resources.dll
およびSystem.Windows.Interactivity.resources.dll
)。私はググってみましたが、この迷惑な自動生成コンテンツを停止する方法に関連するものを見つけることができません。
この問題には2つの回避策があります。
System.Windows.Interactivity.dll
_をコピーして、このファイルに直接参照を追加します\Program Files (x86)\Microsoft SDKs\Expression\Blend\.NETFramework\v4.5\Libraries
他のソリューションを使用しています。 Vistual Studioでプロジェクトのビルド後のイベントを構成できます。冗長なフォルダーは削除されます。
rd /s /q "de", "en", "es", "fr", "it", "ja", "ko", "ru", "zh-Hans", "zh-Hant"
このソリューションは、sdkフォルダーからフォルダーを削除するよりも侵襲性が低くなります。
私は同じ問題を抱えていましたが( 似た答え ここ)、他の答えはどれもうまくいきませんでした。代わりに、メインの "csproj"の末尾に次の行を追加しました
<ItemGroup>
<FluentValidationExcludedCultures Include="be;cs;cs-CZ;da;de;es;fa;fi;fr;ja;it;ko;mk;nl;pl;pt;ru;sv;tr;uk;zh-CN;zh-CHS;zh-CHT">
<InProject>false</InProject>
</FluentValidationExcludedCultures>
</ItemGroup>
<Target Name="RemoveTranslationsAfterBuild" AfterTargets="AfterBuild">
<RemoveDir Directories="@(FluentValidationExcludedCultures->'$(OutputPath)%(Filename)')" />
</Target>
これは、ファイルが生成された後に効果的に削除されます。最初にファイルを作成しないよりは良くありませんが、私にとってはうまくいきます。
次のように、アセンブリスコープでSystem.Resources.NeutralResourcesLanguageAttribute属性を適用します。
[Assembly: System.Resources.NeutralResourcesLanguageAttribute("en")]
(これに適した場所は、プロジェクトのプロパティセクションにあるAssemblyInfo.csファイルです)
Fwiw、csprojを変更することで、system.windows.interactivity.dllを使用するビルドからそれらをダンプすることができました。
<?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>