2008-08-09 23 views
9

Po zmianie katalogu wyjściowego projektu Visual studio zaczęło nie budować z błędem bardzo podobnie:sgen.exe zawiedzie podczas kompilacji

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. 

zmieniłem katalog wyjściowy do TARGET/win_x32/odblokowanie/results, ale ścieżka w sgen nie wydaje się być zaktualizowana. Wydaje się, że w projekcie nie ma odniesienia do ścieżki przekazanej do programu, więc nie jestem pewien, jak to naprawić. Podczas pracy wyłączałem generowanie serializacji, ale byłoby miło naprawić podstawowy problem. Czy ktokolwiek to widział?

Odpowiedz

7

zobaczyć msdn dla opcji sgen.exe [masz wiersza polecenia, można grać z nim ręcznie ... usunąć .XmlSerializers.dll lub użycia siły/choć]

Dzisiaj również biegł jak więcej manually specify the sgen options. Chciałem, aby nie używał przełącznika/proxy, ale wydaje się, że pozwala ci to określić katalog wyjściowy. Nie wiem wystarczająco dużo o msbuild, aby był świetny, ale to powinno się zacząć [otwórz swój .csproj/.vbproj w swoim nie-wizualnym edytorze studyjnym, spójrz na dół i powinieneś być w stanie dowiedzieć się jak/gdzie to idzie]

[poniższy kod miał UseProxyTypes ustawiona na wartość true dla wygody]

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

Nie widziałem tego konkretnego problemu, ale ostatnio dla nas "C1001: Wystąpił błąd wewnętrzny w kompilatorze" Naprawiono błąd typu crash z cl.exe po instalacji losowych i niepowiązanych (lub tak myśleliśmy) Aktualizacje zabezpieczeń systemu Windows.

Wiedzieliśmy, że kod nie spowodował awarii kompilatora na innych komputerach korzystających z tej samej wersji i poziomu dodatku Service Pack programu Visual Studio, ale my naprawdę trzymaliśmy się słomek, kiedy próbowaliśmy aktualizacji zabezpieczeń systemu Windows.

0

Wygląda na tyle rozsądne do mnie, chyba że coś narzuca limit 4096 znaków [ty listy 4020 znaków]

4096 ograniczenie do mnie wydaje się nieco absurdalny, że to będzie 2048 lub 32767 lub 8192 z rzeczy Znalazłem, szukając limitów linii poleceń.

0

wpadłem na ten problem, gdy ja odwoływać zespół na projekt strony internetowej w GAC że był od tego czasu odinstalowany i z jakiegoś powodu ta referencja wywołała generowanie zespołu serializacyjnego i dowiodła, że ​​jest w referencji (ponieważ już nie istniało). Po usunięciu odwołania i włączeniu generowania zespołu serializacji do wyłączenia nie miałem już problemu.

12

Jeśli masz ten problem budując swój projekt VS.Net w trybie wydania tutaj jest rozwiązanie:

Przejdź do właściwości projektu i kliknij na zakładkę zbudować i ustawić wartość na „Generuj serializacji Zgromadzenia "rozwijane do" Wyłączone ".

Sgen.exe to "Generator szeregowy XML tworzy zespół do serializacji XML dla typów w określonym złożeniu, aby poprawić wydajność uruchamiania XmlSerializer, gdy serializuje lub deserializuje obiekty określonych typów." (MSDN)

Powiązane problemy