none
Metadata file 'Dateiname' could not be opened -- 'Für diesen Befehl ist nicht genügend Speicher verfügbar. ' RRS feed

  • Frage

  • Hallo,

    ich habe einen Visual Studio (Team System) Solution 2008 mit 11 Projekten. Eines davon ist ein Crystal Reports Projekt, die erzeugte DLL ist ungefähr 39 MB groß. Diese Solution wurde ursprünglich von VS 2005 portiert. Soweit ich mich erinnere gab es das Problem, das ich mittlerweile habe, damals noch nicht. Allerdings könnte das auch daran liegen, dass damals deutlich weniger Reports vorhanden waren.

    Das Problem ist nämlich, dass sehr oft das Crystal Reports Projekt nicht erstellt werden kann, es gibt folgende Fehlermeldung:

    The "ResolveManifestFiles" task failed unexpectedly.
    System.OutOfMemoryException: Insufficient memory to continue the execution of the program.
       at Microsoft.Build.Tasks.Deployment.ManifestUtilities.NativeMethods.GetAssemblyIdentityFromFile(String filePath, Guid& riid)
       at Microsoft.Build.Tasks.Deployment.ManifestUtilities.MetadataReader.ImportAttributes()
       at Microsoft.Build.Tasks.Deployment.ManifestUtilities.MetadataReader.get_Attributes()
       at Microsoft.Build.Tasks.Deployment.ManifestUtilities.MetadataReader.get_Name()
       at Microsoft.Build.Tasks.Deployment.ManifestUtilities.AssemblyIdentity.FromManagedAssembly(String path)
       at Microsoft.Build.Tasks.ResolveManifestFiles.IsFiltered(ITaskItem item)
       at Microsoft.Build.Tasks.ResolveManifestFiles.GetOutputAssemblies(PublishInfo[] publishInfos, List`1& assemblyList)
       at Microsoft.Build.Tasks.ResolveManifestFiles.GetOutputAssembliesAndSatellites(PublishInfo[] assemblyPublishInfos, PublishInfo[] satellitePublishInfos)
       at Microsoft.Build.Tasks.ResolveManifestFiles.Execute()
       at Microsoft.Build.BuildEngine.TaskEngine.ExecuteInstantiatedTask(EngineProxy engineProxy, ItemBucket bucket, TaskExecutionMode howToExecuteTask, ITask task, Boolean& taskResult)

    Dazu kommt, dass, nachdem der Fehler aufgetreten ist, ich kein Winform mehr im Designer öffnen kann. Stattdessen erscheint eine Messagebox mit dem Inhalt "Exception of type 'System.OutOfMemoryException' was thrown.


    Ich habe dann versucht, das Problem zu umgehen, in dem ich aus der Liste der zu kompilierenden Projekt das CR Projekt herausgenommen habe und jeweils das Projekt alleine Kompiliert habe. Das hat auch nur bedingt geholfen.
    Manchmal gibt es dann folgenden Fehler:

    Unexpected error writing metadata to file 'Dateiname.dll' -- 'Für diesen Vorgang ist nicht genügend Speicher verfügbar. '    

    Manchmal reicht es, wenn ich das VS neu starte, aber manchmal muss ich auch den Rechner neu starten. Oft tritt das Problem erst am Nachmittag auf, dann aber ständig.

    In der Hoffnung, dass der Fehler im neuen VS 2010 nicht auch auftritt, habe ich alle Projekte in diesem VS geöffnet und die Crystal Report DLL, die ich noch zuvor erstellt habe, verlinkt, da ja CR noch nicht für 2010 verfügbar ist. Dann bekomme ich folgende Fehlermeldung:

    Metadata file 'Dateiname' could not be opened -- 'Für diesen Befehl ist nicht genügend Speicher verfügbar. '.

    D.h. das VS hat Probleme eine 39 MB große DLL zu öffnen und verlinken. Am Plattenplatz kann es nicht liegen, auf meiner Platte, auf der das Projekt liegt, habe ich noch 219 GB frei (die Systemplatt hat 138 GB frei), an Arbeitsspeicher habe ich 2 GB verfügbar. Das VS verbraucht laut TaskManager beim Kompilieren nie mehr als 300 bis 400 MB, soweit ich das beobachten konnte.

    Mein System ist eine Intel Core 2 CPU 6700 mit 2,66 GH, 3,5 GB Ram, Win XP Prof SP 3

    Ich bin wirklich mittlerweise verzweifelt. Es kann doch nicht sein, dass das VS Probleme hat, eine etwas größere DLL zu öffnen?

    Für Vorschläge bin ich wirklich sehr dankbar,
    Martin Andel
    Freitag, 12. November 2010 11:46

Alle Antworten

  • Hallo,

    ich habe das selbe Problem. Haben Sie eine Lösung gefunden?

    Grüße

    Heinz

    Donnerstag, 27. Oktober 2011 06:01
  • Hallo,

    ich habe das selbe Problem. Haben Sie eine Lösung gefunden?

    Grüße

    Heinz


    Das Problem liegt wohl darin begründet, dass das Visual Studio Probleme macht, die vielen Reports in die DLL hineinzukompilieren. Anstatt die Reports als zu instanziierende Klassen im entsprechenden Projekt mitzuführen, habe ich jede .rpt Datei in das Hauptprojekt verlinkt, so dass die Dateien mit ausgeliefert werden.
    Anstatt die Reports nun als Objekte zu instanziieren, lade ich diese über ihren Dateinamen. Das einzige, was ich dabei beachten muss, ist, dass ich jeden neuen Report auch im Hauptprojekt verlinke, sonst wird diese .rpt Datei nicht mit ausgeliefert - was sich leider auch erst bei der Veröffentlichung zeigt.

    Ich hoffe, ich konnte damit helfen.

    Donnerstag, 27. Oktober 2011 07:42
  • Vielen Dank für die schnelle Info.
    Donnerstag, 27. Oktober 2011 07:52