16

Visual Studio プロジェクトの出力ディレクトリを変更した後、次のようなエラーでビルドに失敗し始めました。

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.

出力ディレクトリを target/win_x32/release/results に変更しましたが、sgen のパスが更新されていないようです。プロジェクトにはsgenに渡されるパスへの参照がないように見えるので、修正方法がわかりません。回避策として、シリアライゼーション生成を無効にしましたが、根本的な問題を修正することをお勧めします。他の誰かがこれを見たことがありますか?

4

5 に答える 5

26

リリース モードで VS.NET プロジェクトをビルドしているときにこの問題が発生した場合の解決策は次のとおりです。

プロジェクトのプロパティに移動し、[ビルド] タブをクリックして、[シリアル化アセンブリの生成] ドロップダウンの値を [オフ] に設定します。

Sgen.exe は、「XML シリアライザー ジェネレーターは、指定された型のオブジェクトをシリアル化または逆シリアル化するときの XmlSerializer の起動パフォーマンスを向上させるために、指定されたアセンブリ内の型の XML シリアル化アセンブリを作成します。」( MSDN )

于 2015-01-25T04:08:45.563 に答える
8

sgen.exeのオプションについては msdn を参照してください [コマンド ラインがあり、手動で操作できます... .XmlSerializers.dll を削除するか、/force を使用してください]

今日、sgen オプションをより手動で指定する方法にも出くわしました。/proxy スイッチを使用しないようにしたかったのですが、出力ディレクトリを指定できるようです。私はmsbuildを素晴らしいものにするのに十分な知識はありませんが、これで始められるはずです[選択した非ビジュアルスタジオエディターで.csproj/.vbprojを開き、下部を見て、方法を理解できるはずです/これはどこに行く]

[以下のコードでは、便宜上、UseProxyTypes を true に設定しています]

<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>
于 2008-08-26T02:49:28.977 に答える
0

この特定の問題は見たことがありませんが、最近、「C1001: コンパイラで内部エラーが発生しました」という cl.exe のタイプのクラッシュは、ランダムで無関係な (または私たちが考えた) Windows セキュリティ更新プログラムをインストールした後に修正されました。

同じバージョンとサービス パック レベルの Visual Studio を使用している他のマシンでは、このコードがコンパイラをクラッシュさせないことはわかっていましたが、Windows セキュリティ更新プログラムを試したときは、本当にぎくしゃくしていました。

于 2008-08-09T18:58:49.643 に答える
0

何かが4096文字の制限を課していない限り、私には十分に合理的に見えます[あなたは4020文字をリストします]

私にとって 4096 の制限は少しばかげているように思えます。コマンドラインの制限を検索して見つけたものからは、2048 または 32767 または 8192 になります。

于 2008-08-26T02:40:07.427 に答える
0

アンインストールしてから GAC の Web サイト プロジェクトでアセンブリを参照していたときに、この問題に遭遇しました。何らかの理由で、その参照によってシリアライゼーション アセンブリの生成がトリガーされ、sgen が参照をチョークしました (参照が存在しなくなったため)。 . 参照を削除し、シリアライゼーション アセンブリの生成をオフにすると、問題はなくなりました。

于 2010-05-17T20:41:30.637 に答える