كيفية ترقية أو تقليله تجميع الذي يحتوي على تجميع المشار إليه لكائن CLR في مثيل SQL Server 2005


الخطأ رقم: 490 الإصلاحات الضرورية (SQL)

ملخص


عند محاولة ترقية أو تقليله تجميع لكائن (CLR) وقت تشغيل لغة شائعة في مثيل Microsoft SQL Server 2005، لا يمكنك تغيير إصدار التجميعات المشار إليها في بيانات تعريف التجميع. بالإضافة إلى ذلك، إذا كنت تستخدم تجميع باسم واضح لكائن CLR، لا يمكن تقليله التجميع باستخدام عبارة ALTER assembly.

مقدمة


توضح هذه المقالة كيفية ترقية أو تقليله تجميع الذي يحتوي على تجميع المشار إليه لكائن CLR في مثيل SQL Server 2005.

مزيد من المعلومات


كيفية ترقية أو تقليله التجميع

في SQL Server 2005، يمكنك استخدام عبارة ALTER assembly لترقية أو تقليله تجميع مستقلة التي لم يتم إنشاء اسم قوي. لتجميع ذو اسم قوي، يمكن ترقية لكن لا يمكن تقليله التجميع باستخدام عبارة ALTER assembly.

لا يمكنك ترقية أو تقليله تجميع في السيناريو التالي:
  • يتم إنشاء التجميع A في مثيل كائن CLR. التجميع A يحتوي على تجميع المشار إليه. التجميع المشار إليه هو التجميع b.
  • يحتوي التجميع B لا التجميع المشار إليه.
  • قمت بإعادة ترجمة التجميع A للإشارة إلى إصدار مختلف من تجميع b.
في هذا السيناريو، يمكنك استخدام عبارة ALTER assembly إلى التجميع B بالترقية إلى إصدار جديد. إذا لم تكن الجمعية ب تجميع باسم قوي، يمكن أيضا تقليله التجميع B إلى إصدار قديم. ومع ذلك، لا يمكنك استخدام عبارة ALTER assembly الترقية أو تقليله التجميع A إلى الإصدار معاد.

يحدث هذا السلوك لأن SQL Server بإنشاء نهج اندماج CLR عند إنشاء التجميع a. هذه السياسة الاندماج CLR تلقائياً بتعيين إصدار التجميع B في بيانات تعريف التجميع A إلى إصدار التجميع ب SQL Server الفعلي بتحميل إصدار جديد من التجميع B في وقت التشغيل عند الترقية أو تقليله التجميع B إلى بعض الإصدارات الأخرى. يحدث هذا السلوك على الرغم من أن التجميع A يشير إلى الإصدار الأصلي من تجميع b. ومع ذلك، عند محاولة ترقية أو تقليله التجميع A عند التجميع A يحتوي على إصدار جديد من التجميع B في بيانات التعريف وستفشل عبارة ALTER assembly تتلقى رسائل خطأ مشابهة لما يلي:
رسالة الخطأ 1
جي إس 6529، مستوى 16 حالة 1، السطر الأول

فشل "تغيير التجميع" لأنه تم تغيير هوية التجميع المشار إليه 'ريفاسم'. تأكد من عدم تغير الإصدار واسم المفتاح العمومي.
رسالة الخطأ 2
جي إس 6282، مستوى 16 حالة 1، السطر الأول

فشلت "الجمعية تعديل" لتغيير التجميعات المشار إليها. قائمة التجميع المشار إليه يجب أن تبقى كما هي.

ترقية أو تقليله التجميع

ملاحظات
  • الخطوات الترقية أو تقليله التجميع A في السيناريو الموضحة في قسم "كيفية ترقية أو تقليله تجميع".
  • يفترض هذا المثال أن إصدارات التجميعات اثنين وعلى السواء 1.0.0.0 التجميعات يتم كليهما المكتوبة في C #. عند اتباع هذه الخطوات، محاولة ترقية التجميع A والتجميع B إلى الإصدار 2.0.0.0.
لترقية أو تقليله التجميع A، اتبع الخطوات التالية.
  1. النسخ الاحتياطي لإصدار 1.0.0.0 التجميع B إلى مجلد.
  2. تعديل ومن ثم إعادة ترجمة التجميع B إلى الإصدار 2.0.0.0.
  3. استخدام عبارة ALTER assembly لترقية التجميع B في SQL Server 2005.
  4. تعديل ومن ثم إعادة ترجمة التجميع A إلى الإصدار 2.0.0.0. عند القيام بذلك، مرجع الإصدار 1.0.0.0 التجميع B من النسخة الاحتياطية التي قمت بإجرائها في الخطوة 1. للقيام بذلك، استخدم أداة برنامج التحويل البرمجي Csc.exe رمز التبديل /مرجع . على سبيل المثال، استخدم الأمر التالي:
    csc/target:library/الخارج:.cs أسيمبليا.dllأسيمبليا/AssemblyInfo.cs مرجع: "باكوبفولدير\AssemblyBdll."
    ملاحظة: للتحقق من إصدار التجميع B في بيانات تعريف التجميع A، فتح التجميع A باستخدام الأداة Ildasm.exe. وبعد ذلك، تحقق من معلومات بيانات التعريف للتجميع المشار إليه الباب البيان .
  5. استخدام عبارة ALTER assembly لترقية التجميع A في SQL Server 2005.

كيفية خفض تجميع باسم واضح

إذا كنت تستخدم تجميع باسم واضح لكائن CLR، SQL Server 2005 يعتمد استخدام عبارة ALTER assembly لتقلل من التجميعات. إذا كنت تحاول تخفيض إصدار التجميع باستخدام عبارة ALTER assembly، تتلقى رسالة خطأ مشابهة لما يلي:
جي إس 6579، مستوى 16 حالة 1، السطر الأول
تغيير التجميع من 'Asm1، الإصدار = 1.1.0.0، الثقافة = محايد, = 3a52b896cff0513d، فيه = msil' إلى 'Asm1، الإصدار = 1.0.0.0, الثقافة = محايد, = 3a52b896cff0513d، فيه = msil' ليس ترقية متوافقة.
إذا كنت ترغب في تجميع باسم واضح تقليله، اتبع الخطوات التالية:
  1. إسقاط كافة الكائنات التي تعتمد على التجميع.
  2. إسقاط إصدار أحدث من التجميع.
  3. إنشاء الإصدار القديم من التجميع.
  4. إنشاء كافة الكائنات المطلوبة التي تعتمد على التجميع.
ملاحظة: يمكنك ترقية تجميع باسم قوي باستخدام عبارة ALTER assembly. ومع ذلك، إذا كان يتطلب الترقية تجميع المشار إليه, يجب اتباع نفس الخطوات المسردة في قسم "ترقية أو تقليله تجميع".

المراجع


لمزيد من المعلومات حول عبارة ALTER assembly، قم بزيارة موقع شبكة مطوري Microsoft (MSDN) التالي على الويب:لمزيد من المعلومات حول الأداة Ildasm.exe، قم بزيارة موقع Msdn التالي: