J'installe un service C# Windows qui utilise Geode sur un serveur UAT Windows 2012. Le dll référencé (comme log4net, newtonsoft.json et QuickFix) travaillent à l'exception des Pivotal.Gemfire.dllSystem.IO.FileNotFoundException avec Pivotal.Gemfire.dll
Quand je commence le service que je reçois 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'
Maintenant Gacutil
ne vient pas avec Windows Server 2012. Je J'ai essayé d'installer Windows SDK et .Net SDK et je n'ai pas trouvé d'exécutable Gacutil
. J'ai donc essayé d'entrer dans le dll dans le GAC en utilisant Powershell comme ceci:
[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")
J'ai essayé regsvr32 Pivotal.Gemfire.dll
en différentes saveurs
J'ai essayé la compilation et l'exécution de l'exécutable GacInstall à https://github.com/apache/geode-native/tree/develop/executables/GacInstall. Il dit Installation completed successfully.
mais lorsque je tente d'exécuter le service, ou d'essayer powershell:
([system.reflection.assembly]::loadfile("D:\Pivotal.Gemfire.dll")).FullName
je reçois la même erreur.
J'ai essayé une assemblée privée en utilisant l'assemblage d'exécution liant
<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>
et diverses saveurs de nom Pivotal.Gemfire
, Apache.Geode.Client
selon Implementing Shared Assembly, mais toujours la même erreur.
Des idées? Merci ...