2010-08-24 88 views
1

我有一個項目,我正在處理該問題,並引用了「通用庫(DLL)」。在DevEnv中,它工作正常,但是如果我構建並嘗試組織文件,則不起作用。基本上,如果我有事情設置像這樣:Visual Studio:用於發佈的DLL位置

  • C:\ Program Files文件\ MyApp的\ MyApp.exe將
  • C:\ Program Files文件\ MyApp的\ COMMON \ WPF Commons.dll
  • C:\ PROGRAM文件\ MyApp的\模塊\ SomeModule.dll

MyApp.exe將不起作用。它只試圖查看DLL文件的當前目錄。那麼如何在Visual Studio中設置它,以便在構建應用程序時知道要在其他文件夾中查找DLL?

哦,我意識到它在Dev中工作,因爲所有的DLL都放在同一個文件夾中。我不想這樣做發佈,但: -/

回答

3

你需要做的是添加一個私人探測路徑到應用程序配置文件。這告訴CLR尋找額外程序集的目錄。

樣品的app.config

<configuration> 
    <runtime> 
     <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1"> 
     <probing privatePath="Common;Modules"/> 
     </assemblyBinding> 
    </runtime> 
</configuration> 
+0

是否有一個替代的解決方案除了複製MyApp.exe.config文件(其可以在事後容易地打開和編輯) ? – 2010-08-24 21:25:11

+0

@myermian您可以重寫程序集解析事件來執行自定義解析。不過,我個人會使用app.config。 app.config的意思是*在事實之後進行編輯,以便管理員清理綁定和部署問題。將它用於探測路徑是標準做法(Visual Studio實際上是這樣做的)。 – JaredPar 2010-08-24 21:28:10