2014-03-05 28 views
3

我在Mac上使用Xamarin Studio,通過NuGet包含clrzmqlibzmq在Xamarin Studios/C#應用程序中未找到clrzmq

libzmq.dll上的clrzmq引用。我的應用程序編譯罰款,但是當我嘗試運行它,我得到這個:

Unhandled Exception: 
System.DllNotFoundException: libzmq 
    at (wrapper managed-to-native) ZMQ.C:zmq_init (int) 
    at ZMQ.Context..ctor (Int32 io_threads) [0x00000] in <filename unknown>:0 
    at FeatureSpike.MainClass.Main (System.String[] args) [0x00000] in <filename unknown>:0 

libzmq.dll肯定是有在構建目標目錄。有誰知道爲什麼沒有找到?

+0

有上Raspian同樣的問題。在windows上運行... libzmq.dll位於build目錄中。奇數 –

回答

0

libzmq.dll是否在構建輸出目錄中的可執行文件旁邊?

clrzmq NuGet包中包含一個PowerShell安裝腳本,用於設置libzmq.dll的構建操作,以便始終將其複製到輸出目錄。如果您在Mac上添加了NuGet包,那麼PowerShell腳本將不會運行。所以你需要手動設置構建操作。

libzmq.dll似乎是爲Windows編譯的本地dll,因此無法在Mac上運行。所以看起來你需要在Mac上編譯clrzmq。

+0

是的,libzmq.dll與exe和clrzmq dll在相同的目錄中。 –

0

你是否在你的配置中創建了一個dllmap?

<configuration> 
    <dllmap dll="libzmq.dll" target="/usr/local/Cellar/zeromq/4.0.4/lib/libzmq.dylib"/> 
</configuration> 
+0

這個配置文件/選項究竟在哪裏?它會在我的Xamarin IDE –

+0

中的app.config中。在這裏瞭解更多。 http://www.mono-project.com/docs/advanced/pinvoke/dllmap/和http://www.mono-project.com/docs/advanced/pinvoke/ –

1

如果你還在尋找一個解決方案...

您可以使用clrzmq4並添加靜態鏈接libzmq和libsodium本地庫到您的xamarin解決方案。

確保您使用最新版本clrzmq4的,我們剛剛得到它今天運行...

相關問題