2010-10-13 11 views
15

W folderze /bin/debug zauważyłem mnóstwo folderów obcojęzycznych o nazwach takich jak "ar", "bg", "ca", "cs", "da" ... aż do "zh-Hant". Foldery są kopie tych 4 DLL:Visual Studio 2010: dlaczego wszystkie foldery języków obcych?

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

Silverlight aplikacji Zajmuję nie mają żadnego wsparcia internacjonalizacji, więc nie mogę dowiedzieć się, jak te pliki i foldery dotarłem tam. W sumie jest to prawie 13 MB plików.

Jeszcze gorzej, kiedy je usunę, zostaną one zregenerowane przy następnym uruchomieniu rozwiązania.

Każda rada?

ETA:

Oto lista bibliotek DLL odwołuje Silverlight projektu:

  • 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
+0

Mam taką samą sytuację z jednym z moich własnych projektów Silverlight. Mam nadzieję, że to dostanie odpowiedź. –

Odpowiedz

4

Zauważyłem, że niektóre przywoływane zespoły używają zlokalizowanych zasobów do internacjonalizacji, na przykład Castle ActiveRecord. Właśnie sprawdziłem z projektem, nad którym pracuję (który używa Castle ActiveRecord i ZedGraph - oba mają zlokalizowane zasoby w oddzielnych złożeniach), a po zbudowaniu, foldery językowe zostały odtworzone w moim katalogu bin.

Tak, myślę, że odwołujesz się do podobnego zestawu w twoim projekcie, który ma zlokalizowane zasoby, być może złożeń Silverlight lub zespołów ArcGIS (nigdy nie pracował z żadnym z nich).

+0

To brzmi jak najbardziej prawdopodobna odpowiedź. Sprawdzę mój projekt, że to się stanie później, aby potwierdzić. –

+0

To brzmi wiarygodnie. Teraz, gdyby istniał prosty sposób na usunięcie wszystkich folderów. Około 30 z nich zawiera identyczne kopie czterech bibliotek DLL. Pozostałe zawierają identyczne kopie sześciu bibliotek DLL, oryginalne cztery plus S.W.C.navigation.resources.dll i S.W.Data.resources.dll. To niewiarygodnie nieefektywny sposób przechowywania tych rzeczy. – Klay

2

byłem w stanie zapobiec foldery tworzone przez usunięcie linii:

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

kiedy miałem niechciane foldery, które zawierały .dll interaktywność.

+6

, ale co jeśli potrzebujesz system.windows.interactivity? –

2

Mam dokładnie ten sam problem i udało mi się go zawęzić. Problem tkwi w tych dwóch referencji:

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

Usuwając te dwie referencje, udało mi usunąć niepotrzebne biblioteki DLL w obcym języku.

Jeśli nie możesz sobie pozwolić na usunięcie tych 2 referencji lub jakichkolwiek innych odniesień, możesz usunąć bibliotekę obcojęzyczną z katalogu instalacyjnego silverlight, np. C: \ Program Files (x86) \ Pakiety Microsoft SDK \ Silverlight \ v5.0 \ Biblioteki \ Klient

+0

Dzięki za naprawienie moich odpowiedzi. –

+0

Problem nie są foldery dla mnie ... ale system.windows.interactivity.resources ... Nie używam go, ale instalator clickOnce prosi mnie i nie mogę go dodać .... –

1

Właśnie zmagałem się z zestawami satelitarnymi "System.Windows.Interactivity.resources.dll" w moim folderze wyjściowym. Mogłem rozwiązać problem przez usunięcie wszystkich folderów językowych z "\ Program Files \ Microsoft SDK \ Expression \ Blend.NETFramework \ v4.5 \ Libraries". Jak opisano here na forum MSDN.

1

Mogę tu szukać rozwiązania tego problemu, ale natknąłem się na niego samego. Ustawić te 2 dll skopiować lokalną fałsz:

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

Powiedziałbym @darkphoenix jest poprawna, ale foldery są tworzone tylko jeśli chcesz obejmują te umiędzynarodowionych dll w swoim wyjściu. Znajdź bibliotekę DLL, której używasz i ustaw ją tak, aby kopiowała lokalną wartość false (o nazwie "private" w pliku projektu). Jeśli nadal potrzebujesz tych bibliotek dll do uruchomienia aplikacji, rozważ posiadanie ich kopii w folderze biblioteki.

Powiązane problemy