Ich versuche, eine .NET-DLL (nennen Sie es B.dll), die im Grunde ein Wrapper für eine .Net-Drittanbieter ist (nennen Sie es C.dll) in C++ - MFC-Projekt. Ich habe die tlb-Datei für B.dll erstellt und bin in der Lage, dies innerhalb der MFC-App zu instanziieren und aufzurufen.MFC verwaltete Codereferenzen
Im Moment müssen alle Abhängigkeiten, B.tlb, B.dll und C.dll, im Ordner Ordner der MFC-Anwendung sein. Ich möchte und versuche, diese drei Dateien in einen Unterordner des MFC-Ausführungsordners zu kopieren.
Ich habe versucht, die "privatePath" der B.Dll-Konfigurationsdatei zu einem Unterordner, aber wie ich es verstanden habe, ist es nicht die B.Dll "PrivatePath", die gesetzt werden muss, sondern die MFC-Anwendung (die offensichtlich hasn Ich habe keine, soweit ich weiß, da es keine. NET-Anwendung ist)
Jede Hilfe wird geschätzt.
Sie sind sicherlich die Maximierung DLL Hell in diesem Szenario ist es nie viel Sinn, dass. Die CLR sucht nach einer Datei somename.exe.config im selben Verzeichnis wie somename.exe. Sie können also ein '' -Element hinzufügen, um die C.dll-Datei zu finden. B.dll kann nur gefunden werden, indem Sie die Option/codebase im Befehl Regasm.exe verwenden, die Sie zum Registrieren der Assembly verwenden müssen, oder indem Sie der mfc-App ein Manifest mit einem '' -Element geben. Das Verwenden des GAC auf dem Computer des Benutzers für COM-Abhängigkeiten ist nie eine schlechte Idee. –
Warum wird dieses Szenario als DLL-Hölle betrachtet? Könntest du es bitte mehr erklären? Ich kann nicht daran denken, es zu tun, ohne einen .NET-DLL-Wrapper zu erstellen und ihn als COM-Komponente zu registrieren. – ali