2010-01-05 65 views
4

我有一個使用SharpSVN DLL和NServicebus DLL,它編譯細交流#應用程序,但是當它被執行(在初始化總線的時間)它引發以下錯誤「無法加載文件或程序集」/「或其某個依賴項,該模塊應包含程序集清單。」

無法加載文件或程序集「 file:/// C:\ Repositories \ Repo \ hooks \ SharpSvn-DB44-20-Win32.dll'或其依賴項之一。預計該模塊將包含程序集清單。

我該如何解決上述問題。

提前感謝 Susanta

回答

1

SharpSvn-DB44-20-Win32.dll是SharpSvn.dll的可選幫助DLL。它只包含非託管代碼。

它包含對直接訪問文件系統上的BDB存儲庫的支持。如果只使用fsfs(file://)和/或遠程存儲庫,則不需要此DLL。

SASL dll也是可選的,但是當你想要使用svn://存儲庫時需要這樣做。

+1

如果我只在我的項目中使用sharpsvn dll或nServicebus dll,那麼不會出現問題,但是當我同時使用SharpSvn和Nservicebus(僅執行時間,而不是編譯時間)時,上述錯誤會引發。請給出解決方案。 – 2010-01-05 12:54:13

4

與組件的顯式列表配置NSB排除在NServiceBus assemblyscanning的sharpsvn dll文件掃描TOI:

Configure.With( 「你的組件包含messagehandlers清單」)...

製作如果您使用的是Saga功能,請確保在列表中包含NServiceBus.core.dll。

希望這會有所幫助!

+0

我配置了三個dll(NServiceBus.dll,NServiceBus.core.dll,NServiceBus.ObjectBuilder.CastleWindsor.dll),那麼這個錯誤就是 類型NServiceBus.Unicast.Transport.CompletionMessage未在序列化程序中註冊。檢查它是否出現在要掃描的已配置程序集/類型的列表中。 請告訴我爲什麼會出現這個錯誤? – 2010-01-06 07:56:17

+1

完成消息存在於核心dll中,因此您應該對提到的dll有所瞭解。嘗試使用:typeof(CompletionMessage).Assembly指定核心程序集並查看是否有幫助? – 2010-01-06 20:03:15

+0

你能詳細說明嗎? – 2010-01-07 07:13:02

1

使用以下總線配置可以解決問題。

總線= NServiceBus.Configure.With(typeof運算(即時聊天).Assembly的typeof(CompletionMessage).Assembly) .SpringBuilder()。MsmqSubscriptionStorage()。XmlSerializer的()。MsmqTransport() .IsTransactional(真).PurgeOnStartup(false).UnicastBus()。ImpersonateSender(false) .LoadMessageHandlers()。CreateBus()。開始();

由於安德烈亞斯

2

Susanta,

最近,我們犯了一個額外的API,它可以是你的東西更容易讓你指定哪個組件加載如下:

配置.With(AllAssemblies.Except(「SharpSvn-DB44-20-Win32.dll」))... //其餘配置

相關問題