Die abhängige Assemblierung "Microsoft.VC90.MFC..... konnte nicht gefunden werden.
-
Dir Manifest Einträge (Informationen) stecken in den Objekt Dateien. Der Linker sammelt diese und wirft Sie aus.
Wenn Du also Code Libraries hast (nicht nur Import-Libs), dann darf keine dieser DLLs mit einem Debug Build erzeugt worden sein!
Das wäre sowieso ein fatales Problem, dass Du lösen musst.
-
OK.
Aber wie kommt die Manifest auf die Version 9.0.21022.8?
-
Das steht in den Header Dateien für die Objekt Datei die compiliert wurde.
\Microsoft Visual Studio 8\VC\include\crtassem.h
_CRT_ASSEMBLY_VERSION\Microsoft Visual Studio 8\VC\atlmfc\include\atlassem.h
_ATL_ASSEMBLY_VERSION\Microsoft Visual Studio 8\VC\atlmfc\include\MFCassem.h
_MFC_ASSEMBLY_VERSIONMachst Du irgendwas mit _BIND_TO_CURRENT_... Defines?
Das solltest Du bleiben lassen!
-
OK.
Aber der Eintrag im Manifest DEBUG....... steht immer noch drin, obwohl ich alle Projekte nach einem debug im Release gesucht hab, und nix gefunden.Es müsste doch irgendwo unter Einstellungen im Release Mode unter Laufzeiteinstellungen DEBUG stehen, oder?
Oder such ich an der falschen Stelle.....
-
Dursuch doch deine Objekt Dateien im Release Folder nach dem falschen Eintrag.
-
Und wie?
Wie kann ich diese Files anschauen und anpassen?
-
Durchsuchen kannst Du sie mit jedem simplen Texttool. Die Manifesteinträge sind da so ziemlich im Klartext zu sehen.
Anpassen sollst Du diese OBJ Dateien gar nicht.
Du solltest Deine Projekte saber einstellen und nicht Debug+Relase mischen. Das Durchsuchen der Objektdateien ist nur ein Werkzeug!
-
OK. Hab es durchsucht, stehen auch 3 Einträge drin (Manifest).
-
Und verwenden diese die Debug oder release DLLs? Jetzt weißt Du aus welchem "falschen" Projekt oder Einstellungen die Verweise stammen.
-
Hab ich nicht gesehen, dass ein DEBUG drin steht.
Hab jetzt alles nochmals compiliert, und der Witz ist, dass im
*.intermediate.manifest nur 2 Eintraäge sind, und im
*.manifest 3 Einträge sind (mit DebugCRT).
-
Also ich habe jetzt folgendes festgestellt.
Wenn ich ein BATCH erstelle, in dem ich die DEBUG und die RELEASE gleichzeitig generiere, da hat er die DebugCRT im Manifest drin.
Compiliere ich aber nur die RELEASE, ohne Debug, dann macht er mir die Manifest Datei ohne den Eintrag.
-
Durchsuche alle .obj/.lib-Dateien mal nach dem Text "/manifestdependency". Das zeigt Dir alle Elemente, die auf ein Manifest Bezug nehmen. Aus diesen Informationen werden dann die .manifest-Dateien erzeugt. Damit findest Du auf jeden Fall das Modul mit dem falschen Eintrag.
-
simcon schrieb:
Also ich habe jetzt folgendes festgestellt.
Wenn ich ein BATCH erstelle, in dem ich die DEBUG und die RELEASE gleichzeitig generiere, da hat er die DebugCRT im Manifest drin.
Compiliere ich aber nur die RELEASE, ohne Debug, dann macht er mir die Manifest Datei ohne den Eintrag.Dann würde ich sagen, dass sich hier die Interim Verzeichniss überlappen oder nicht eindeutig sind.