2010-12-28 16 views
0

Meine Maschine: Windows XP (x86), VS2008, .net 3.5, SQL-Server 2005, WinForms -> App funktioniert gut.RMO unter Windows 7 - Das angegebene Modul konnte nicht gefunden werden

Produktionsmaschinen: Windows 7 (x64), SQL Server 2005 Express -> App startet aber wirft Ausnahme

Visual Studio x86-Targeting auf Setup-Projekt und RMO-Projekt. Visual Studio gibt mir ein paar Warnungen, aber ich kann immer noch bauen:

Unable to find dependency 'MICROSOFT.SQLSERVER.MANAGEMENT.SQLPARSER' (Signature='89845DCD8080CC91' Version='10.0.0.0') of assembly 'Microsoft.SqlServer.Smo.dll' 

Unable to find dependency 'MICROSOFT.SQLSERVER.MANAGEMENT.SQLPARSER' (Signature='89845DCD8080CC91' Version='10.0.0.0') of assembly 'Microsoft.SqlServer.Management.SmoMetadataProvider.dll' 

Dies ist eine einfache RMO (Replication Management Objects) Anwendung, die ein Pullabonnement in SQL Server 2005 und zeigt den Status einleitet. Funktioniert auf meiner Maschine gut, scheitert jedoch auf der Produktionsmaschine. Ich benutze ein Setup-Projekt, um die App auf der Produktionsmaschine zu installieren, aber ich denke, dass ich irgendwo eine Abhängigkeit vermisse, aber ich kann es nicht herausfinden. auf der Produktionsmaschine startet die App in Ordnung, aber wenn ich versuche, das Abonnement zu synchronisieren i erhalten:

System.IO.FileNotFoundException: The Specified module could not be found. (Exception from HResult: 0x8007007E) 

EDIT: Task-Manager in Win 7 inditcates, dass es läuft als 32-Bit-app (myapp .exe * 32).

EDIT: Ok, meine App zeigt jetzt in Task-Manager, dass es eine 64-Bit-App ist, aber ich bekomme einen Fehler. Ich denke, dass ich eine Abhängigkeits-DLL habe, die auf x86 abzielt. Wie kann ich überprüfen, ob die Abhängigkeitsdll auf die richtige Plattform abzielt und/oder sicherstellt, dass sie auf x64 abzielt? Ich dachte, das Setup-Prjoect würde die DLL in meinen erkannten Abhängigkeiten neu aufbauen, um die von mir im Setup-Projekt gewählte CPU anzusprechen?

konnte nicht Datei oder Assembly 'Microsoft.SqlServer.Replication, Version = 10.0.0.0, Kultur-neutral, PublicKey Token = 89845dcd8080cc91' oder eine ihrer Abhängigkeiten laden. Es wurde versucht, ein Programm mit einem falschen Format zu laden.

Antwort

0

Führen Sie den Fusion Log Viewer als Administrator aus, und legen Sie ihn auf Log Bind Failures to Disk fest.
So können Sie sehen, welche DLLs nicht richtig geladen werden.

+0

sorry ich habe festgestellt, sollte, dass ich weiß, welche DLL es das ist nicht geladen, ich habe gerade don‘ Ich weiß warum (siehe meine aktualisierte Frage). – AGoodDisplayName

+0

suchen Sie nach dieser DLL auf Ihrem Computer. könnte sein, dass es aus irgendeinem Grund nicht installiert wurde. –

+0

Ja, es ist definitiv da. Ich denke nur, dass es nicht mit einer 64bit Win 7 Maschine funktionieren wird. – AGoodDisplayName

0

Ich dachte, das Setup prjoect die DLL in meiner erkannten Abhängigkeit wieder aufbauen würde, was> CPU-I-Projekt in der Einrichtung

das Setup automatisch für Sie DLLs nicht kompiliert

wählte Ziel.

Es wurde versucht, ein Programm mit einem falschen Format zu laden.

Blick hier, auf dem eine x64-Version von ‚Microsoft.SqlServer.Replication‘ finden http://social.msdn.microsoft.com/Forums/en/sqlreplication/thread/628ec2ae-c5d1-4aef-b31b-b889975bfc2b

+1

danke, aber schließlich endete mit einer etwas anderen Route. Ich starte jetzt einfach einen Prozess und rufe replmerg.exe auf und gebe die passenden Argumente ein, um den Handle der Replikation zu bekommen. – AGoodDisplayName

Verwandte Themen