2010-10-13 5 views
15

Dans le dossier /bin/debug de ma solution, j'ai remarqué un tas de ce qui semble être des dossiers en langue étrangère avec des noms comme "ar", "bg", "ca", "cs", "da" ... jusqu'à "zh-Hant". Les dossiers ont chacune des copies de ces 4 DLLs:Visual Studio 2010: pourquoi tous les dossiers en langue étrangère?

  • System.ComponentModel.DataAnnotations.resources.dll
  • System.Windows.Controls.Data.Input.resources.dll
  • System.Windows.Controls. Data.resources.dll
  • System.Windows.Controls.resources.dll

L'application Silverlight Je développe ne pas le soutien de l'internationalisation, donc je ne peux pas comprendre comment ces fichiers et dossiers arrivés là. Dans l'ensemble, c'est presque 13 Mo de fichiers. Pire encore, quand je les supprime, ils sont régénérés la prochaine fois que je construis la solution.

Un conseil?

ETA:

Voici la liste des DLL référencés par le projet Silverlight:

  • ESRI.ArcGIS.Client
  • ESRI.ArcGIS.Client.Toolkit
  • mscorlib
  • système
  • 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
+0

J'ai la même situation avec l'un de mes propres projets Silverlight. J'espère que cela sera répondu. –

Répondre

4

J'ai remarqué que certains assemblages référencés ont tendance à utiliser des ressources localisées pour l'internationalisation, par exemple Castle ActiveRecord. Je viens de vérifier avec un projet sur lequel je travaille (qui utilise Castle ActiveRecord et ZedGraph - les deux ont des ressources localisées dans des assemblages séparés), et après la construction, les dossiers de langue ont été recréés dans mon dossier bin. Donc, je crois que vous faites référence à un assemblage similaire dans votre projet qui a des ressources localisées, peut-être les assemblages Silverlight ou les assemblages ArcGIS (jamais travaillé avec).

+0

Cela semble être la réponse la plus probable. Je vais vérifier mon projet que cela se passe plus tard pour confirmer. –

+0

Cela semble plausible. Maintenant, si seulement il y avait un moyen simple de supprimer tous les dossiers. Environ 30 d'entre eux contiennent des copies identiques de quatre DLL. Les autres contiennent des copies identiques de six DLL, les quatre originaux plus S.W.C.navigation.resources.dll et S.W.Data.resources.dll. C'est une façon incroyablement inefficace de stocker ce genre de choses. – Klay

2

j'ai pu empêcher les dossiers créés en supprimant la ligne:

xmlns:i="http://schemas.microsoft.com/expression/2010/interactivity" 

quand j'avais des dossiers non désirés qui contenaient une .dll d'interactivité.

+6

mais que faire si vous avez besoin de l'interface system.windows.interact? –

2

J'ai exactement le même problème et j'ai réussi à le réduire. Le problème réside dans ces deux références:

  1. System.Windows.Control
  2. System.Windows.Control.Toolkit (Silverlight Toolkit 5)

En supprimant ces deux références, j'ai réussi pour supprimer les DLL de langue étrangère inutiles.

Si vous ne pouvez pas vous permettre de supprimer ces 2 références ou toute autre référence, vous pouvez supprimer les DLL en langue étrangère du répertoire d'installation de Silverlight par exemple. C: \ Program Files (x86) \ Microsoft SDKs \ Silverlight \ v5.0 \ bibliothèques \ Client

+0

Merci d'avoir corrigé mes réponses. –

+0

Le problème ne sont pas les dossiers pour moi ... mais le system.windows.interactivity.resources ... Je ne l'utilise pas mais clickOnce installateur me le demande et je ne peux pas l'ajouter .... –

1

J'ai juste lutté avec les assemblys satellites "System.Windows.Interactivity.resources.dll" dans mon dossier de sortie. Je pourrais résoudre le problème en supprimant tous les dossiers de langue de "\ SDKs de programme \ Microsoft \ Expression \ Blend.NETFramework \ v4.5 \ bibliothèques". Comme décrit here dans le forum MSDN.

1

Je peux ici chercher une solution à ce problème, mais je suis tombé sur un moi-même. Je mets ces 2 dll à copier faux locale:

<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> 

Je dirais que @darkphoenix est correct, mais les dossiers sont créés uniquement si vous souhaitez inclure ces dll internationalisés dans votre sortie. Trouvez la DLL que vous utilisez et définissez-la pour copier le fichier local false (nommé 'private' dans le fichier de projet). Si vous avez toujours besoin de ces dll pour exécuter votre application, pensez à en avoir une copie papier dans un dossier de bibliothèque.

Questions connexes