生成されたシリアライゼーション .dll に奇妙な問題があります。.dll が正常に生成され、プロジェクトで参照できます。すべての型がMicrosoft.Xml.Serialization.GeneratedAssembly
期待どおりに名前空間に含まれており、インテリセンスが型と名前空間を取得しています。しかし、生成されたアセンブリ内のいずれかの型を参照するプロジェクトをビルドしようとすると、次の行に沿ってエラーが発生します。
エラー 2型または名前空間名 'Xml' が名前空間 'Microsoft' に存在しません (アセンブリ参照がありませんか?)
かなり奇妙ですよね?インテリセンスに関する限り、名前空間は明らかに存在し、これまでにこのような問題が発生したことはありません。アセンブリを再生成しようとしましたが、それでも同じ問題です。
今のところsgen.exe
、フラグ/keep
を付けて実行し、生成されたソースをプロジェクトにコピーしましたが、問題ありません。この問題を修正する方法があるかどうか、または他の誰かが以前に遭遇したことがあるかどうかに興味がありました.
編集:
生成されたアセンブリが、それを参照しているアセンブリよりも新しいバージョンの .NET フレームワークをターゲットにしているため、問題が発生していることが判明しました。問題は、特定の .NET フレームワーク バージョンを対象とするシリアル化アセンブリを Sgen で生成するにはどうすればよいかということです。