2017-08-25 14 views
0

Geodeを使用するC#WindowsサービスをUAT Windows 2012サーバーにインストールします。 (log4netの、newtonsoft.jsonおよびクイックフィックスのような)参照dllが今Gacutilが勝利サーバー2012 Iが付属していません、私はサービスを開始すると、私はSystem.IO.FileNotFoundException: Could not load file or assembly 'Pivotal.Gemfire.dll' or one of its dependencies. The specified module could not be found. File name: 'Pivotal.Gemfire.dll'Pivotal.Gemfire.dllのSystem.IO.FileNotFoundException

を取得

Pivotal.Gemfire.dll

を除く働いていますWindows SDKと.Net SDKをインストールしようとしましたが、 Gacutil実行ファイルが見つかりませんでした。だから私はこのようにPowerShellを使用してGACにdllファイルに取得しようとしました:

[System.Reflection.Assembly]::Load("System.EnterpriseServices, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a") 
$publish = New-Object System.EnterpriseServices.Internal.Publish 
$publish.GacInstall("D:\Pivotal.Gemfire.dll") 

私はhttps://github.com/apache/geode-native/tree/develop/executables/GacInstallでGacInstallの実行可能ファイルをコンパイルして実行しようとした様々な味でregsvr32 Pivotal.Gemfire.dll

を試してみました。それはInstallation completed successfully.を言いますが、私はサービスを実行する、またはPowerShellをしようとしようとすると:

([system.reflection.assembly]::loadfile("D:\Pivotal.Gemfire.dll")).FullName

を私は同じエラーを取得します。

私は同じエラーをImplementing Shared Assemblyによるが、常に

<runtime> 
<assemblyBinding 
    xmlns="urn:schemas-microsoft-com:asm.v1"> 
    <dependentAssembly> 
    <assemblyIdentity name="Apache.Geode" publicKeyToken="null" culture="neutral" /> 
    <codeBase version="9.1.1-build.2" href="file://Pivotal.Gemfire.dll"/> 
    </dependentAssembly> 
</assemblyBinding> 
</runtime> 

と名前Pivotal.GemfireApache.Geode.Clientの様々な味を結合ランタイムアセンブリを使用してプライベートアセンブリを試してみました。

アイデア?ありがとう...

答えて

0

Gemstone.Gemfire.Cache.dllという以前のバージョンのGeode 9.0.7をダウンロードして同じエラーが発生しましたが、そのバージョンには同じディレクトリにGemstone.Gemfire.Cache.xmlが含まれていました。 xmlファイルを自分のbinディレクトリに持っていれば、エラーは停止し、サービスは正常に開始されました。

だからlike thisこの問題は、dllに付随する冗長なxmlファイルです。私はPivotal.Gemfire.xml

<?xml version="1.0"?> 
<doc> 
</doc> 
0

は、この問題は、別のインストールで再び起こった新しいダミーのXMLファイルを作成することで問題を修正しました。その後、xmlファイルは、それを解決していない使用して上記の答え、それはネイティブクライアントのバージョン9.0.7をダウンロードすることで解決した、Gemstone.Gemfire.Cache.dllや削除、その後Assembly successfully added to the cacheを返さ

.\gacutil /if C:\FIX\IsFix\Gemstone.Gemfire.Cache.dll

を実行しています以前のバージョンのdllですが、それ以降のバージョンPivotal.Gemfire.dllは、a strong name issueのためにGACに入ることができませんでした。 GACにdllの以前のバージョンを手に入れるというこの奇妙な回避策は、GACが最新のバージョンを見つけて使用することを可能にします...

関連する問題