2010-10-13 6 views
15

En la carpeta /bin/debug de mi solución, he notado un montón de lo que parecen ser carpetas en idiomas extranjeros con nombres como "ar", "bg", "ca", "cs", "da" ... todo el camino hasta "zh-Hant". Las carpetas tienen cada uno copias de estos archivos DLL: 4Visual Studio 2010: ¿por qué todas las carpetas de idioma extranjero?

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

La aplicación de Silverlight que estoy desarrollando no tiene ningún soporte de internacionalización, por lo que no puede averiguar cómo estos archivos y carpetas Llegamos allí. En total, son casi 13 MB de archivos.

Peor aún, cuando los elimino, se regeneran la próxima vez que construyo la solución.

¿Algún consejo?

ETA:

está la lista de archivos DLL que hace referencia el proyecto de Silverlight aquí:

  • ESRI.ArcGIS.Client
  • ESRI.ArcGIS.Client.Toolkit
  • mscorlib
  • sistema
  • 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

Tengo la misma situación con uno de mis propios proyectos de Silverlight. Espero que esto sea respondido. –

Respuesta

4

He notado que algunos ensambles a los que se hace referencia tienden a usar recursos localizados para la internacionalización, por ejemplo Castle ActiveRecord. Acabo de verificar con un proyecto en el que estoy trabajando (que usa Castle ActiveRecord y ZedGraph, que tienen recursos localizados en ensamblajes separados), y después de compilar, las carpetas de idioma fueron recreadas en mi carpeta bin.

Creo que está haciendo referencia a un ensamblaje similar en su proyecto que tiene recursos localizados, posiblemente los ensamblajes Silverlight o los ensamblajes ArcGIS (nunca funcionó con ninguno).

+0

Parece la respuesta más probable. Comprobaré en mi proyecto que esto ocurra más tarde para confirmar. –

+0

Esto suena plausible. Ahora si solo hubiera una manera simple de eliminar todas las carpetas. Alrededor de 30 de ellos contienen copias idénticas de cuatro archivos DLL. Los restantes contienen copias idénticas de seis archivos DLL, los cuatro originales más S.W.C.navigation.resources.dll y S.W.Data.resources.dll. Esta es una manera increíblemente ineficaz de almacenar esto. – Klay

2

que fue capaz de prevenir las carpetas que se crean mediante la eliminación de la línea:

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

cuando tuve carpetas no deseados que contenían una .dll interactividad.

+6

, pero ¿y si necesita el sistema.windows.interactivity? –

2

Tengo exactamente el mismo problema y he logrado reducirlo. El problema radica en estas dos referencias:

  1. System.Windows.Control
  2. System.Windows.Control.Toolkit (juego de herramientas 5)

Al eliminar estas dos referencias, he logrado para eliminar los archivos DLL de idiomas extranjeros innecesarios.

Si no puede eliminar esas 2 referencias o cualquier otra referencia, puede eliminar las dlls de idioma extranjero del directorio de instalación de silverlight, por ejemplo. C: \ Archivos de programa (x86) \ SDK de Microsoft \ Silverlight \ v5.0 \ Libraries \ Client

+0

Gracias por arreglar mis respuestas. –

+0

El problema no son las carpetas para mí ... sino el sistema.windows.interactivity.resources ... No lo uso, pero el instalador ClickOnce me lo pregunta y no puedo agregarlo .... –

1

Luché con los ensamblados satélite "System.Windows.Interactivity.resources.dll" en mi carpeta de salida. Podría resolver el problema eliminando todas las carpetas de idiomas de "\ Program Files \ Microsoft SDKs \ Expression \ Blend.NETFramework \ v4.5 \ Libraries". Como se describe here en el foro de MSDN.

1

Aquí puedo buscar una solución a este problema, pero tropecé con uno yo mismo. Me puse estos 2 DLL para copiar local falsa:

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

diría @darkphoenix es correcto, pero las carpetas sólo se crean si desea incluir aquellos internacionalizados DLL en su salida. Busque los dll que usa y configúrelos para copiar falso local (denominado 'privado' en el archivo del proyecto). Si aún necesita estos dll para ejecutar su aplicación, considere tener una copia impresa de ellos en la carpeta de la biblioteca.

Cuestiones relacionadas