2010-10-13 58 views
15

在我的解決方案的/bin/debug文件夾中,我注意到了一些似乎是外部語言文件夾的名稱,如「ar」,「bg」,「ca」,「cs」,「da」 ...一直到「zh-Hant」。每個文件夾都具有這4個DLL的副本:Visual Studio 2010:爲什麼所有的外語文件夾?

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

Silverlight應用程序我開發沒有任何國際化的支持,所以我無法弄清楚如何將這些文件和文件夾到了那裏。總而言之,它差不多有13 MB的文件。

更糟糕的是,當我刪除它們時,它們會在我下次構建解決方案時重新生成。

有什麼建議嗎?

ETA:

這裏,Silverlight項目中引用的DLL列表:

  • ESRI.ArcGIS.Client
  • ESRI.ArcGIS.Client.Toolkit
  • 的mscorlib
  • 系統
  • 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

我和我自己的Silverlight項目有同樣的情況。希望這得到回答。 – 2010-10-14 01:03:14

回答

4

我注意到一些引用的程序集傾向於使用本地化的資源進行國際化,例如Castle ActiveRecord。 我剛剛檢查了一個我正在使用的項目(使用Castle ActiveRecord和ZedGraph - 兩者都在單獨的程序集中都有本地化的資源),並且在構建之後,語言文件夾在我的bin文件夾中被重新創建。

因此,我相信你在你的項目中引用了一個類似程序集的本地化資源,可能是Silverlight程序集或ArcGIS程序集(從來沒有用過)。

+0

這聽起來像是最可能的答案。我會檢查我的項目,稍後會進行確認。 – 2010-10-16 16:44:48

+0

這聽起來似乎合理。現在,如果只有一個簡單的方法來刪除所有的文件夾。其中約30個包含四個DLL的相同副本。其餘的包含六個DLL的相同副本,原始的四個加上S.W.C.navigation.resources.dll和S.W.Data.resources.dll。這是一種令人難以置信的方式來存儲這些東西。 – Klay 2010-10-18 15:18:19

2

我能夠防止正在創建文件夾通過除去行:

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

,當我有包含交互.dll文件不需要的文件夾。

+6

但是如果你需要system.windows.interactivity呢? – 2015-02-05 07:55:49

2

我有完全相同的問題,我設法縮小了範圍。問題在於這兩個參考:

  1. System.Windows.Control
  2. System.Windows.Control.Toolkit(Silverlight工具包5)

通過刪除這兩個引用,我已經成功刪除不必要的外語DLL。

如果您不能負擔,以消除那些2所引用或任何其他引用,你可以刪除Silverlight的安裝目錄,例如外語的DLL。 C:\ Program Files(x86)\ Microsoft SDKs \ Silverlight \ v5.0 \ Libraries \ Client

+0

感謝您解決我的答案。 – 2013-01-16 14:33:02

+0

問題不在於我的文件夾...但system.windows.interactivity.resources ...我不使用它,但clickOnce安裝程序向我詢問,我無法添加.... – 2015-02-05 07:58:24

1

我剛剛在輸出文件夾中使用了「System.Windows.Interactivity.resources.dll」衛星程序集。我可以通過從「\ Program Files \ Microsoft SDKs \ Expression \ Blend.NETFramework \ v4.5 \ Libraries」中刪除所有語言文件夾來解決此問題。正如在MSDN論壇中描述的here所述。

1

我可以在這裏尋找一個解決這個問題,但在一個偶然發現自己。我設置這2 dll的複製本地假:

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

我想說@darkphoenix是正確的,但文件夾,才能創建,如果你希望包括那些國際化的DLL在您的輸出。找到您使用的dll,並將它們設置爲複製本地false(在項目文件中命名爲「private」)。如果您仍然需要這些DLL來運行您的應用程序,請考慮在庫文件夾中存儲它們的硬拷貝。

相關問題