Frage

Nach dem Ändern des Ausgabeverzeichnisses eines Visual Studio-Projekts begann die Erstellung mit einem Fehler wie dem folgenden fehlzuschlagen:

C:\Program Files\Microsoft Visual Studio 8\SDK\v2.0\bin\sgen.exe /assembly:C:\p4root\Zantaz\trunk\EASDiscovery\EASDiscoveryCaseManagement\obj\Release\EASDiscoveryCaseManagement.dll /proxytypes /reference:C:\p4root\Zantaz\trunk\EASDiscovery\EasDiscovery.Common\target\win_x32\release\results\EASDiscovery.Common.dll /reference:C:\p4root\Zantaz\trunk\EASDiscovery\EasDiscovery.Export\target\win_x32\release\results\EASDiscovery.Export.dll /reference:c:\p4root\Zantaz\trunk\EASDiscovery\ItemCache\target\win_x32\release\results\EasDiscovery.ItemCache.dll /reference:c:\p4root\Zantaz\trunk\EASDiscovery\RetrievalEngine\target\win_x32\release\results\EasDiscovery.RetrievalEngine.dll /reference:C:\p4root\Zantaz\trunk\EASDiscovery\EASDiscoveryJobs\target\win_x32\release\results\EASDiscoveryJobs.dll /reference:"C:\Program Files\Infragistics\NetAdvantage for .NET 2008 Vol. 1 CLR 2.0\Windows Forms\Bin\Infragistics2.Shared.v8.1.dll" /reference:"C:\Program Files\Infragistics\NetAdvantage for .NET 2008 Vol. 1 CLR 2.0\Windows Forms\Bin\Infragistics2.Win.Misc.v8.1.dll" /reference:"C:\Program Files\Infragistics\NetAdvantage for .NET 2008 Vol. 1 CLR 2.0\Windows Forms\Bin\Infragistics2.Win.UltraWinChart.v8.1.dll" /reference:"C:\Program Files\Infragistics\NetAdvantage for .NET 2008 Vol. 1 CLR 2.0\Windows Forms\Bin\Infragistics2.Win.UltraWinDataSource.v8.1.dll" /reference:"C:\Program Files\Infragistics\NetAdvantage for .NET 2008 Vol. 1 CLR 2.0\Windows Forms\Bin\Infragistics2.Win.UltraWinDock.v8.1.dll" /reference:"C:\Program Files\Infragistics\NetAdvantage for .NET 2008 Vol. 1 CLR 2.0\Windows Forms\Bin\Infragistics2.Win.UltraWinEditors.v8.1.dll" /reference:"C:\Program Files\Infragistics\NetAdvantage for .NET 2008 Vol. 1 CLR 2.0\Windows Forms\Bin\Infragistics2.Win.UltraWinGrid.v8.1.dll" /reference:"C:\Program Files\Infragistics\NetAdvantage for .NET 2008 Vol. 1 CLR 2.0\Windows Forms\Bin\Infragistics2.Win.UltraWinListView.v8.1.dll" /reference:"C:\Program Files\Infragistics\NetAdvantage for .NET 2008 Vol. 1 CLR 2.0\Windows Forms\Bin\Infragistics2.Win.UltraWinMaskedEdit.v8.1.dll" /reference:"C:\Program Files\Infragistics\NetAdvantage for .NET 2008 Vol. 1 CLR 2.0\Windows Forms\Bin\Infragistics2.Win.UltraWinStatusBar.v8.1.dll" /reference:"C:\Program Files\Infragistics\NetAdvantage for .NET 2008 Vol. 1 CLR 2.0\Windows Forms\Bin\Infragistics2.Win.UltraWinTabControl.v8.1.dll" /reference:"C:\Program Files\Infragistics\NetAdvantage for .NET 2008 Vol. 1 CLR 2.0\Windows Forms\Bin\Infragistics2.Win.UltraWinToolbars.v8.1.dll" /reference:"C:\Program Files\Infragistics\NetAdvantage for .NET 2008 Vol. 1 CLR 2.0\Windows Forms\Bin\Infragistics2.Win.UltraWinTree.v8.1.dll" /reference:"C:\Program Files\Infragistics\NetAdvantage for .NET 2008 Vol. 1 CLR 2.0\Windows Forms\Bin\Infragistics2.Win.v8.1.dll" /reference:"C:\Program Files\Microsoft Visual Studio 8\ReportViewer\Microsoft.ReportViewer.Common.dll" /reference:"C:\Program Files\Microsoft Visual Studio 8\ReportViewer\Microsoft.ReportViewer.WinForms.dll" /reference:C:\p4root\Zantaz\trunk\EASDiscovery\PreviewControl\target\win_x32\release\results\PreviewControl.dll /reference:C:\p4root\Zantaz\trunk\EASDiscovery\Quartz\src\Quartz\target\win_x32\release\results\Scheduler.dll /reference:c:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\System.configuration.dll /reference:c:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\System.Data.dll /reference:c:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\System.Design.dll /reference:c:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\System.DirectoryServices.dll /reference:c:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\System.dll /reference:c:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\System.Drawing.dll /reference:c:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\System.Web.dll /reference:c:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\System.Web.Services.dll /reference:c:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\System.Windows.Forms.dll /reference:c:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\System.Xml.dll /compiler:/delaysign- 
    Error: The specified module could not be found. (Exception from HRESULT: 0x8007007E)
    C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Microsoft.Common.targets(1902,9): error MSB6006: "sgen.exe" exited with code 1.

Ich habe das Ausgabeverzeichnis in target/win_x32/release/results geändert, aber der Pfad in sgen scheint nicht aktualisiert worden zu sein.Es scheint im Projekt keinen Hinweis darauf zu geben, welcher Pfad an sgen übergeben wird, daher bin ich mir nicht sicher, wie ich das Problem beheben kann.Um dieses Problem zu umgehen, habe ich die Serialisierungsgenerierung deaktiviert, aber es wäre schön, das zugrunde liegende Problem zu beheben.Hat das noch jemand gesehen?

War es hilfreich?

Lösung

sehen msdn für die Optionen zu sgen.exe [Sie haben die Befehlszeile, Sie können manuell damit spielen ...Löschen Sie Ihre .XmlSerializers.dll oder verwenden Sie jedoch /force]

Heute bin ich auch darauf gestoßen, wie man mehr macht Geben Sie die SGEN-Optionen manuell an.Ich wollte, dass der Schalter /proxy nicht verwendet wird, aber es sieht so aus, als ob Sie damit das Ausgabeverzeichnis angeben können.Ich weiß nicht genug über msbuild, um es großartig zu machen, aber das sollte Ihnen den Einstieg erleichtern [öffnen Sie Ihre .csproj/.vbproj-Datei in einem nicht-visuellen Studio-Editor Ihrer Wahl, schauen Sie unten nach und Sie sollten in der Lage sein, herauszufinden, wie das geht /Wohin das geht]

[Für den folgenden Code wurde „UseProxyTypes“ zur Vereinfachung auf „true“ gesetzt.]

<Target Name="GenerateSerializationAssembliesForAllTypes"
  DependsOnTargets="AssignTargetPaths;Compile;ResolveKeySource"
  Inputs="$(MSBuildAllProjects);@(IntermediateAssembly)"
  Outputs="$(OutputPath)$(_SGenDllName)">
    <SGen BuildAssemblyName="$(TargetFileName)"
      BuildAssemblyPath="$(OutputPath)" References="@(ReferencePath)"
      ShouldGenerateSerializer="true" UseProxyTypes="true"
      KeyContainer="$(KeyContainerName)" KeyFile="$(KeyOriginatorFile)"
      DelaySign="$(DelaySign)" ToolPath="$(SGenToolPath)">
        <Output TaskParameter="SerializationAssembly"
          ItemName="SerializationAssembly" />
     </SGen>
</Target>
<!-- <Target Name="BeforeBuild">
</Target> -->
<Target Name="AfterBuild"
  DependsOnTargets="GenerateSerializationAssembliesForAllTypes">
</Target>

Andere Tipps

Wenn dieses Problem beim Erstellen Ihres VS.NET-Projekts im Release-Modus auftritt, finden Sie hier die Lösung:

Gehen Sie zu den Projekteigenschaften, klicken Sie auf die Registerkarte „Erstellen“ und setzen Sie den Wert der Dropdown-Liste „Serialisierungsassembly generieren“ auf „Aus“.

SGEN.EXE ist "Der XML -Serializergenerator erstellt eine XML -Serialisierungsanordnung für Typen in einer bestimmten Montage, um die Startleistung eines XMLSerializer zu verbessern, wenn sie Objekte der angegebenen Typen serialisiert oder deserialisiert." (MSDN)

Ich habe dieses spezielle Problem nicht gesehen, aber kürzlich kam bei uns ein „C1001:Beim Compiler ist ein interner Fehler aufgetreten. Der Absturz von cl.exe wurde nach der Installation einiger zufälliger und unabhängiger (so dachten wir zumindest) Windows-Sicherheitsupdates behoben.

Wir wussten, dass der Code den Compiler auf anderen Computern mit der gleichen Version und dem gleichen Service Pack-Level von Visual Studio nicht zum Absturz brachte, aber als wir die Windows-Sicherheitsupdates ausprobierten, waren wir wirklich verzweifelt.

Für mich sieht es einigermaßen vernünftig aus, es sei denn, irgendetwas schreibt eine Beschränkung auf 4096 Zeichen vor [Sie geben 4020 Zeichen an]

Ein 4096-Limit erscheint mir etwas absurd, es wäre 2048 oder 32767 oder 8192, wie ich bei der Suche nach den Befehlszeilenlimits gefunden habe.

Ich bin auf dieses Problem gestoßen, als ich auf eine Assembly in einem Website-Projekt im GAC verwiesen hatte, die inzwischen deinstalliert worden war, und aus irgendeinem Grund löste dieser Verweis eine Serialisierungs-Assembly-Generierung aus und sgen verschluckte sich an der Referenz (da sie nicht mehr existierte). .Nachdem ich die Referenz entfernt und die Generierung der Serialisierungsassembly auf Aus geschaltet hatte, hatte ich das Problem nicht mehr.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top