C:\Program Files\Microsoft SDKs\Windows\v7.1\Bin\sgen.exe
以前は .NET 4 アセンブリから sgen.exe を実行してターゲットにしていましたが、正常にビルドされました。プロジェクトを .NET 4.5 にアップグレードすると、次のエラーで失敗します。
Microsoft (R) Xml シリアル化サポート ユーティリティ [Microsoft(R) .NET Framework、バージョン 2.0.50727.3038] Copyright (C) Microsoft Corporation. 全著作権所有。 sgen.exe : エラー: 一時クラスを生成できません (結果 = 1)。 エラー CS0012: 型 'System.Object' は、参照されていないアセンブリで定義されています。アセンブリ 'System.Runtime, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' への参照を追加する必要があります。 エラー CS0012: 型 'System.ComponentModel.INotifyPropertyChanged' は、参照されていないアセンブリで定義されています。アセンブリ 'System.ObjectModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' への参照を追加する必要があります。
新しいフレームワーク用に更新された sgen.exe が必要になると考えたので、試してみましC:\Program Files (x86)\Microsoft SDKs\Windows\v8.1A\bin\NETFX 4.5.1 Tools
たC:\Program Files (x86)\Microsoft SDKs\Windows\v8.0A\bin\NETFX 4.0 Tools
が、それらも失敗しました:
Microsoft (R) Xml シリアル化サポート ユーティリティ [Microsoft(R) .NET Framework バージョン 4.0.30319.33440] Copyright (C) Microsoft Corporation. 全著作権所有。 エラー: 一時クラスを生成できません (結果 = 1)。 エラー CS0012: 型 'System.Object' は、参照されていないアセンブリで定義されています。アセンブリ 'System.Runtime, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' への参照を追加する必要があります。 エラー CS0012: 型 'System.ComponentModel.INotifyPropertyChanged' は、参照されていないアセンブリで定義されています。アセンブリ 'System.ObjectModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' への参照を追加する必要があります。
.net 4.5 アセンブリで sgen.exe を使用することは可能ですか?
(編集)コマンドラインを使用:
PS C:\Program Files (x86)\Microsoft SDKs\Windows\v8.1a\bin\NETFX 4.5.1 Tools\x64> . .\sgen /f /a:"D:\MyProject\bin\x64\Debug\MyProgram.exe"