メイン コンテンツへスキップ
サポート
Microsoft アカウントでサインイン
サインインまたはアカウントを作成してください。
こんにちは、
別のアカウントを選択してください。
複数のアカウントがあります
サインインに使用するアカウントを選択してください。

Bug #: 490 (SQL 修正プログラム)

概要

アップグレードまたは Microsoft SQL Server 2005 のインスタンスで共通言語ランタイム (CLR) オブジェクトのアセンブリをダウン グレードしようとすると、アセンブリのメタデータ内で参照されるアセンブリのバージョンは変更できません。また、CLR オブジェクトに対する厳密な名前のアセンブリを使用する場合、ALTER ASSEMBLY ステートメントを使用してアセンブリをダウン グレードできません。。

はじめに

この資料では、アップグレードまたは SQL Server 2005 のインスタンスで CLR オブジェクトの参照先アセンブリを持つアセンブリをダウン グレードする方法について説明します。

詳細

アップグレードまたはアセンブリをダウン グレードする方法

SQL Server 2005 では、アップグレードまたは厳密な名前で作成されていないスタンドアロン アセンブリをダウン グレードするのには、ALTER ASSEMBLY ステートメントを使用できます。厳密な名前付きアセンブリでは、アップグレードできますが、ALTER ASSEMBLY ステートメントを使用してアセンブリをダウン グレードできません。。

アップグレードするか、次のシナリオでは、アセンブリをダウン グレードできません。

  • アセンブリ A では、インスタンスで CLR オブジェクトが作成されます。アセンブリ A には、参照先アセンブリがあります。参照アセンブリは、アセンブリ B. です。

  • アセンブリ B には、参照先アセンブリがありません。

  • アセンブリ B. の異なるバージョンを参照するアセンブリ A が再コンパイルします。

このシナリオでは、アセンブリ B の新しいバージョンにアップグレードするのには、ALTER ASSEMBLY ステートメントを使用できます。アセンブリ B は、厳密な名前付きアセンブリではない場合も古いバージョンのアセンブリ B をダウン グレードすることができます。ただし、アップグレードするか、再コンパイルされたバージョンのアセンブリ A をダウン グレードするのには、ALTER ASSEMBLY ステートメントを使用できません。

アセンブリ A を作成するとき、SQL Server が CLR フュージョン ポリシーを作成するためにこの現象が発生します。この CLR フュージョン ポリシーは、アセンブリ B. SQL Server の実際のバージョン A にアップグレードまたは他のいくつかのバージョンのアセンブリ B をダウン グレードすると、実行時にアセンブリ B の新しいバージョンが読み込まれるアセンブリのメタデータにアセンブリ B のバージョンを自動的にマップします。アセンブリ A がアセンブリ B. の元のバージョンを指す場合でもこの現象が発生します。ただし、しようとするとアップグレードするか、アセンブリ A には、メタデータにアセンブリ B の新しいバージョンが含まれています、ALTER ASSEMBLY ステートメントが失敗し、次のようなエラー メッセージが表示される場合は、アセンブリ A をダウン グレードします。

エラー メッセージ 1

メッセージ 6529、レベル 16、状態 1、行 1

アセンブリの変更は、参照されたアセンブリ 'RefAsm' の id が変更されたために失敗しました。バージョン、名前、および公開キーが変更されていないことを確認します。

エラー メッセージ 2

メッセージ 6282、レベル 16、状態 1、行 1

アセンブリの変更は、参照アセンブリを変更するために失敗しました。参照されるアセンブリは同じままする必要があります。

アップグレードまたはアセンブリをダウン グレード

注:

  • 次の手順は、アップグレードまたは「アップグレードまたはアセンブリをダウン グレードする方法」セクションで説明されているシナリオでは、アセンブリ A をダウン グレードします。

  • この例では、2 つのアセンブリのバージョンが 1.0.0.0 とアセンブリの両方がある両方は C# で記述します。これらの手順を実行した場合は、アセンブリ A およびアセンブリ B のバージョン 2.0.0.0 をアップグレードするのにはください。

アップグレードするか、アセンブリ A をダウン グレードするには、以下の手順をします。

  1. フォルダーには、アセンブリ B のバージョン 1.0.0.0 をバックアップします。

  2. 変更し、バージョン 2.0.0.0 のアセンブリ B を再コンパイルします。

  3. SQL Server 2005 では、アセンブリ B にアップグレードするのにには、ALTER ASSEMBLY ステートメントを使用します。

  4. 変更し、バージョン 2.0.0.0 のアセンブリ A を再コンパイルします。こうと、手順 1 で作成したバックアップから、アセンブリ B のバージョン 1.0.0.0 を参照します。これを行うには、 /referenceスイッチ Csc.exe コンパイラ ツールを使用します。たとえば、次のコマンドを使用します。

    csc/target:library/out:アセンブリの .dllアセンブリ.cs AssemblyInfo.cs/reference:"BackupFolder\AssemblyB.dll」

  5. アセンブリ A のメタデータにアセンブリ B のバージョンを確認するには、Ildasm.exe ユーティリティを使用してアセンブリ A を開きます。次に、マニフェストのセクションの下にある参照先アセンブリのメタデータ情報を確認します。

  6. SQL Server 2005 でアセンブリ A をアップグレードするのには、ALTER ASSEMBLY ステートメントを使用します。

ヘルプを表示

その他のオプションが必要ですか?

サブスクリプションの特典の参照、トレーニング コースの閲覧、デバイスのセキュリティ保護方法などについて説明します。

コミュニティは、質問をしたり質問の答えを得たり、フィードバックを提供したり、豊富な知識を持つ専門家の意見を聞いたりするのに役立ちます。

この情報は役に立ちましたか?

言語の品質にどの程度満足していますか?
どのような要因がお客様の操作性に影響しましたか?
[送信] を押すと、Microsoft の製品とサービスの改善にフィードバックが使用されます。 IT 管理者はこのデータを収集できます。 プライバシーに関する声明。

フィードバックをいただき、ありがとうございます。

×