SQL Server 2005 で .NET アセンブリを作成した後、.NET サービス パック/バグ修正が MS によってリリースされ、通常の Microsoft Update を介してインストールされた場合、何かする必要がありますか? SQL アセンブリは元の .NET .dll へのリンクですか、それとも SQL Server は独自のプライベート コピーを取りますか?
2 に答える
SQL Server 2005 で .NET アセンブリを作成した後、MS によって .NET サービス パック/バグ修正がリリースされ、通常の Microsoft Update を介してインストールされる場合、何かする必要がありますか?
場合によります。SQL Server CLR 統合は、すべての .NET アセンブリをサポートしているわけではありません。 「SQL Server CLR ホスト環境でのテストされていない .NET Framework アセンブリのサポート ポリシー」を参照してください。サポートされているアセンブリ (以下) に限定する場合は、何もする必要はありません。
- Microsoft.VisualBasic.dll
- Mscorlib.dll
- System.Data.dll
- System.dll
- System.Xml.dll
- Microsoft.VisualC.dll
- CustomMarshallers.dll
- System.Security.dll
- System.Web.Services.dll
- System.Data.SqlXml.dll
- System.Transactions.dll
- System.Data.OracleClient.dll
- System.Configuration.dll
ただし、テストされていないアセンブリを参照すると、エラーが発生する可能性があります。
CLR がアセンブリを読み込むと、CLR は同じアセンブリが GAC にあることを確認します。同じアセンブリが GAC にある場合、CLR はこれらのアセンブリのモジュール バージョン ID (MVID) が一致することを確認します。これらのアセンブリの MVID が一致しない場合、「現象」に記載されているエラー メッセージが表示されます。
アセンブリが再コンパイルされると、アセンブリの MVID が変更されます。したがって、.NET Framework を更新すると、それらのアセンブリが再コンパイルされるため、.NET Framework アセンブリの MVID が異なります。さらに、独自のアセンブリを更新すると、アセンブリが再コンパイルされます。したがって、アセンブリにも異なる MVID があります。
CLR ルーチンを実行するとき、または SQL Server 2005 でアセンブリを使用するときのエラー メッセージから:「ホスト ストアのアセンブリには、GAC のアセンブリとは異なる署名があります。(HRESULT からの例外: 0x80131050)」 http://support.microsoft.com/ kb/949080
これが発生した場合は、ALTER ASSEMBLY ステートメントを使用して新しいアセンブリを再指定するだけです。
.NET サービス パック/バグ修正が MS によってリリースされ、通常の Microsoft Update を介してインストールされる場合、何かする必要がありますか?
いいえ。通常、修正はランタイム自体に適用されるため、アセンブリなどを再構築する必要はありません。
SQL アセンブリは元の .NET .dll へのリンクですか、それとも SQL Server は独自のプライベート コピーを取りますか?
SQL Server は、ビューで確認できる自身のコピーを保持しsys.assembly_files
ます。