Domanda

Dopo aver cambiato la directory di output di un progetto di visual studio ha iniziato a non riuscire a costruire con un errore molto simile:

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.

Ho cambiato la directory di output di destinazione/win_x32/release/risultati, ma il percorso in sgen non sembra essere stato aggiornato.Sembra che ci sia alcun riferimento al progetto di che percorso è passato in sgen quindi sono sicuri di come risolvere il problema.Come soluzione mi hanno disattivato la serializzazione generazione, ma sarebbe bello risolvere il problema sottostante.Qualcuno ha altro ha visto questo?

È stato utile?

Soluzione

vedere msdn per le opzioni sgen.exe [hai la riga di comando, si può giocare con essa manualmente...eliminare vostro .XmlSerializers.dll o l'uso della forza se]

Oggi mi sono anche imbattuto in come più specificare manualmente il sgen opzioni.Ho voluto questo per non utilizzare il proxy /switch, ma sembra che può consentono di specificare la directory di output.Io non so abbastanza di msbuild per rendere impressionante, ma questo dovrebbe iniziare [apri il tuo .csproj/.vbproj per le non-editor di visual studio a scelta, guarda in basso e si dovrebbe essere in grado di capire come/dove questo va]

[il seguente codice ha avuto UseProxyTypes impostare a true per la vostra convenienza]

<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>

Altri suggerimenti

Se si stanno avendo questo problema, mentre costruire la vostra VS.NET progetto in modalità di Rilascio ecco la soluzione:

Vai al progetto, proprietà e fare clic sulla scheda di generazione e impostare il valore di "Generare Assembly di Serializzazione a discesa" su "Off".

Sgen.exe è "Il Serializzatore XML Generator crea un assembly di serializzazione XML per i tipi in un assembly specificato al fine di migliorare le prestazioni di avvio di un XmlSerializer quando serializza o deserializza oggetti dei tipi specificati." (MSDN)

Io non ho visto questo problema particolare, ma di recente, per noi, un "C1001:Errore interno del compilatore" tipo crash da cl.exe è stato fissato dopo l'installazione di alcuni casuali e indipendenti (o almeno così pensavamo) aggiornamenti di sicurezza di Windows.

Sapevamo che il codice non mandare in crash il compilatore su altre macchine che utilizzano la stessa versione e service pack di Visual Studio, ma siamo stati davvero stringendo cannucce quando abbiamo provato a fare aggiornamenti di sicurezza di Windows.

Sembra abbastanza ragionevole per me, a meno che qualcosa è imponente 4096 limite di caratteri [elenco 4020 caratteri]

4096 limite mi sembra un po ' assurdo, sarebbe 2048 o 32767 o 8192 dalle cose che ho trovato con la ricerca per la riga di comando limiti.

Mi sono imbattuto in questo problema quando ho avuto a che fare riferimento a un assembly di un progetto di sito web del GAC che erano state disinstallate, e per qualche motivo che riferimento ha attivato un assembly di serializzazione generazione, e sgen soffocato di riferimento (in quanto non esisteva più).Dopo la rimozione del riferimento e girando assembly di serializzazione generazione di Fuori, non ho più avuto il problema.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top