4

根據this question,我嘗試使用<codebase>來定位外部程序集。現在,當我運行該程序時,我收到一條錯誤消息,說私人程序集位於appbase之外。我該如何解決這個問題?我看到一個建議說要簽署大會。我這樣做了,但是我的程序找不到組件。當我沒有簽名時,我得到了outside the appbase錯誤。如何使用<codebase>加載位於其他地方的程序集並且不安裝到GAC? (探測沒有任何工作,似乎它仍然有可能成爲應用程序文件夾中存在的) 我的配置文件:使用代碼庫加載程序集

<?xml version="1.0" encoding="utf-8" ?> 
<configuration> 
    <runtime> 
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1"> 
     <dependentAssembly> 

     <assemblyIdentity name="NGameHost" 

          culture="neutral" /> 
     <codeBase version="1.0.0.0" 
        href="C:/Program Files/NetworkGame3/api/NGameHost.exe"/> 
     </dependentAssembly> 
    </assemblyBinding> 
    </runtime> 

</configuration> 

回答

7

如果組件是私有程序集,代碼庫的設置必須是相對於應用程序目錄的路徑。

(從MSDN

+0

我的相對路徑(使用../../...)和同樣的錯誤信息做出出現。 – XSL

+0

將程序集移動到應用程序的子目錄而不是父目錄時,它是否有所作爲? – sq33G

+0

問題是,dll位於特定目錄中,因爲還有很多其他依賴項,所以我無法將其移動到我的子目錄中。但是,如果我在該目錄中創建一個新項目並調用DLL,它聲稱它無法加載另一個依賴項(原始DLL可以加載)。也許這就是導致問題的DLL。 – XSL