単純な HTTP Web サービスを呼び出す CLR プロジェクトがあります。x64 を対象としており、VS2010 が正しいターゲット アーキテクチャ (x64) を指すようにするために必要な変更について説明している次のリンクで説明されている手順を実行した後にのみ、適切にシリアル化することができました。正しいバージョンの sgen.exe を参照するためにいくつかの行を追加した csproj ファイル: http://geekswithblogs.net/akraus1/archive/2011/12/10/148002.aspx
これで、「シリアル化されたアセンブリの生成」をオンに設定することで、このプロジェクトとその .XmlSerializers.dll をビルドできるようになりました。CLR プロジェクトがデータベースにデプロイされるので、これを行いたいのですが、これらの DLL はデータベースで参照されておらず、CLR プロジェクトにアクセス許可を与えたくないため、オブジェクトを実行時にシリアル化したくありません。これは、セキュリティが重要な本番環境で使用されるため、また私のデータベースは信頼できないため、セキュリティ上の理由から EXTERNAL_ACCESS よりも高くなります。
簡単に言うと、シリアル化されたアセンブリをデータベースにアップロードするために次のリンクのガイドに従っていますが、エラーが発生します: http://footheory.com/blogs/bennie/archive/2006/12/07/invoking-a -web-service-from-a-sqlclr-stored-procedure.aspx
エラー: アセンブリ '.XmlSerializers' の CREATE ASSEMBLY が失敗しました。これは、アセンブリがサポートされていないバージョンの共通言語ランタイム用にビルドされているためです。
sgen.exe に CLR でサポートされているバージョンのアセンブリを強制的にシリアル化することで、これを修正する方法を知っている人はいますか? ビバ・ザ・スタック。