In the /bin/debug folder of my solution I've noticed a slew of what appear to be foreign language folders with names like "ar", "bg",开发者_如何学运维 "ca", "cs", "da"... all the way to "zh-Hant". The folders each have copies of these 4 DLLs:
- System.ComponentModel.DataAnnotations.resources.dll
- System.Windows.Controls.Data.Input.resources.dll
- System.Windows.Controls.Data.resources.dll
- System.Windows.Controls.resources.dll
The Silverlight application I'm developing doesn't have any internationalization support, so I can't figure out how these files and folders got there. All in all, it's almost 13 MB of files.
Worse yet, when I delete them, they are regenerated the next time I build the solution.
Any advice?
ETA:
Here's the list of DLLs referenced by the Silverlight project:
- ESRI.ArcGIS.Client
- ESRI.ArcGIS.Client.Toolkit
- mscorlib
- system
- System.Core
- System.Net
- System.Runtime.Serialization
- System.ServiceModel
- System.Windows
- System.Windows.Browser
- System.Windows.Controls
- System.Windows.Controls.Layout.Toolkit
- System.Windows.Controls.Navigation
- System.Windows.Interactivity
- System.Xml
I've noticed that some referenced assemblies tend to use localized resources for internationalization, for example Castle ActiveRecord.
I just checked with a project I'm working on (that uses Castle ActiveRecord and ZedGraph - both of which have localized resources in separate assemblies), and after building, the language folders were recreated in my bin
folder.
So imo, I believe you're referencing a similar assembly in your project that has localized resources, possibly the Silverlight assemblies or the ArcGIS assemblies (never worked with either).
I have the exact same problem and I've managed to narrow it down. The problem lies with these two references:
- System.Windows.Control
- System.Windows.Control.Toolkit (Silverlight Toolkit 5)
By removing these two references, I've managed to remove the unnecessary foreign language DLLs.
If you cant afford to remove those 2 references or any other references, you can delete the foreign language dlls from silverlight installation directory eg. C:\Program Files (x86)\Microsoft SDKs\Silverlight\v5.0\Libraries\Client
I just struggled with "System.Windows.Interactivity.resources.dll" satellite assemblies in my output folder. I could solve the issue by removing all language folders from "\Program Files\Microsoft SDKs\Expression\Blend.NETFramework\v4.5\Libraries". As discribed here in the MSDN Forum.
I was able to prevent the folders being created by removing the line:
xmlns:i="http://schemas.microsoft.com/expression/2010/interactivity"
when I had unwanted folders that contained an interactivity .dll.
I can here searching for a solution to this problem, but stumbled upon one myself. I set these 2 dll's to copy local false:
<Reference Include="System.Windows.Controls, Version=5.0.5.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<Private>False</Private>
</Reference>
<Reference Include="System.Windows.Controls.Navigation, Version=5.0.5.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<Private>False</Private>
</Reference>
I'd say @darkphoenix is correct, but the folders are only created if you wish to include those internationalized dll's in your output. Find the dll's you use and set them to copy local false (named 'private' in the project file). If you still need these dll's to run your application, consider having a hard copy of them in a library folder.
精彩评论