2016-05-24 11 views
0

ネイティブDLLをMicrosoftサービスファブリックサービスにインポートしますか?これは可能ですか?もしそうなら、私はそれをどのように達成できますか?私は、実行時に後でインポートできるように、ネイティブDLLをデプロイするようにデプロイメントに指示する方法につきものです。現在のところ、DLLが見つからないというランタイムエラーが発生します。アプリケーション全体がサービスファブリッククラスタにデプロイされるので、必要なネイティブDLLも何とか取得する必要があります。サービスファブリックでネイティブDLLをインポートするには?

何か助けが必要です。前もって感謝します!

敬具

マリオ

編集: 申し訳ありませんが、私は私のアプローチと、エラーについてはほとんど情報を持っていたことがあります。私はこのような私のC#のサービスでネイティブDLLをインポートしよう:

[DllImport("Plugin.dll", 
    EntryPoint = "DoSomeStuff", 
    CallingConvention = CallingConvention.Cdecl)] 
public static extern int DoSomeStuff(); 

その後StatelessServiceのinhereted機能RunAsyncでインポート機能の呼び出し:単純に私の最初のアプローチは、単純に入れていた

protected override async Task RunAsync(CancellationToken cancellationToken) 
{ 
    DoSomeStuff(); 
} 

を他の実行可能ファイルが置かれているbinフォルダにPlugin.dllファイルが必要でした。しかし、それらはクラスターに移動されないか、ランタイムによって検出されません。私は次の例外得るか実行時に

System.DllNotFoundException: Die DLL \"Plugin.dll\": Das angegebene Modul wurde nicht gefunden. (Ausnahme von HRESULT: 0x8007007E) kann nicht geladen werden. 
bei DoSomeStuff() 
bei Application.<RunAsync>d__2.MoveNext() in C:\\SolutionPath\\ProjectPath\\Application.cs:Zeile 45. 
--- Ende der Stapelüberwachung vom vorhergehenden Ort, an dem die Ausnahme ausgelöst wurde --- 
bei System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) 
bei System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) 
bei Microsoft.ServiceFabric.Services.Runtime.StatefulServiceReplicaAdapter.<ExecuteRunAsync>d__e.MoveNext()" 

を、私はドイツ語のエラーメッセージのため申し訳ありません(オリジナル)、私が翻訳してみてください。

System.DllNotFoundException: The DLL \"Plugin.dll\": The specified Module was not found. (Exception of HRESULT: 0x8007007E) cannot be loaded. 
at DoSomeStuff() 
at Application.<RunAsync>d__2.MoveNext() in C:\\SolutionPath\\ProjectPath\\Application.cs:Zeile 45. 
--- End of stack trace of the exception origin, where the exception was raised --- 
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) 
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) 
at Microsoft.ServiceFabric.Services.Runtime.StatefulServiceReplicaAdapter.<ExecuteRunAsync>d__e.MoveNext()" 
+0

エラーに関する情報と、人々の手助けを容易にするコードスニペットを含めることを検討してください – gdgr

答えて

1

は、ここに私の応答をチェックアウト: Service Fabric include additional files。これは、サービスプロジェクトのコンテンツファイルとしてネイティブDLLファイルを指定する方法と、アプリケーションプロジェクトのパッケージ後MSBuild手順でファイルをサービスパッケージに手動でコピーする方法のいずれかで実行できます。

関連する問題