2008-08-09 2 views
9

После изменения выходного каталога визуального проекта студии он начал не строить с ошибкой очень похоже:Sgen.exe сбоя во время сборки

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. 

Я изменил выходной каталог для предназначаться/win_x32/выпуска/results, но путь в sgen, похоже, не обновлялся. Кажется, в проекте нет ссылки на какой путь передается в sgen, поэтому я не уверен, как его исправить. В качестве работы я отключил генерацию сериализации, но было бы неплохо исправить основную проблему. Кто-нибудь еще видел это?

ответ

7

см msdn для опций Sgen.exe [вы имеете командную строку, вы можете играть с ним вручную ... удалить .XmlSerializers.dll или использование/силы, хотя]

Сегодня я натыкался как сделать больше manually specify the sgen options. Я хотел, чтобы это не использовало переключатель/proxy, но, похоже, он может указывать выходной каталог. Я не знаю достаточно о msbuild, чтобы сделать его потрясающим, но это должно помочь вам начать работу (откройте свой .csproj/.vbproj в своем редакторе без визуального дизайна, посмотрите внизу, и вы должны быть в состоянии выяснить, как/где это идет]

[код ниже была UseProxyTypes значение иСТИНА для вашего удобства]

<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

Я не видел этой конкретной проблемы, но недавно для нас возникла ошибка «C1001: внутренняя ошибка в компиляторе» из-за ошибки cl.exe после установки некоторых случайных и несвязанных (или так мы думали) Обновления безопасности Windows.

Мы знали, что код не разбивает компилятор на других машинах с использованием той же версии и уровня пакета обновления Visual Studio, но мы действительно хватались за соломинку, когда мы пробовали обновления безопасности Windows.

0

Это выглядит достаточно разумным для меня, если что-то не навязывает ограничение 4096 символов [Вы перечисляете 4020 символов]

4096 предел мне кажется немного абсурдным, было бы 2048 или 32767 или 8192 из материала Я нашел, ища ограничения командной строки.

0

Я столкнулся с этой проблемой, когда я ссылаться сборки на веб-сайте проекта в GAC, что с тех пор была удалена, и по какой-то причине эта ссылка вызвала генерацию сборки сериализации, а sgen задохнулся от ссылки (поскольку она больше не существовала). После удаления ссылки и превращения сборки сериализации в Off, у меня больше не было проблемы.

12

Если вы с этой проблемой при построении проекта VS.NET в режиме выпуска здесь решение:

Перейти к свойствам проекта и нажмите на вкладке Построить и установите значение «Generate сериализации Ассамблеи "выпадающий список" Выкл. ".

Sgen.exe «Генератор сериализаторов XML создает сборку XML-сериализации для типов в указанной сборке, чтобы улучшить производительность запуска XmlSerializer, когда он сериализует или десериализует объекты указанных типов». (MSDN)

Смежные вопросы