مشاركة عبر


نشر مكونات COM مع ClickOnce

وتم نشر COM مكونات المتوارثة عادة مهمة صعبة. تحتاج إلى مسجَّل عمومي المكونات ولذلك يمكن أن يؤدي undesirable الآثار الجانبية بين التطبيقات متراكبة. هذا الموقف غير عادة مشكلة في تطبيقات.NET Framework لأن المكونات تماما معزول لتطبيق أو تتوافق مع جنبا إلى جنب. ‏‫Visual Studio يسمح لك بنشر COM منعزل المكونات تشغيل ‏‫النظام تشغيل ‏‫نظام تشغيل Windows XP أو النظام تشغيل أتشغيل.

ClickOnceيوفر سهولة و إليه آمنة لتوزيع تطبيقات.NET. ومع ذلك، إذا كانت التطبيقات الخاصة بك استخدم COM مكونات قديم، فستحتاج إلى تنفيذ خطوات إضافى لنشر هذه. يصف هذا الموضوع كيفية نشر COM منعزل مرجع المكونات الأصلية (على سبيل المثال، من برنامج Visual أساسى 6.0 أو Visual C + +) ومكونات.

للحصول تشغيل مزيد من المعلومات حول نشر COM منعزل المكونات، راجع "تبسيط نشر التطبيق مع ClickOnceوحرر بتسجيل COM" في https://msdn.microsoft.com/msdnmag/issues/05/04/RegFreeCOM/الافتراضي.aspx .

التسجيل-حر COM

خالي من تسجيل COM التقنية جديدة لتوزيع وتنشيط COM منعزل المكونات. يعمل بواسطة وضع معلومات مكتبة النوع و regهوtration الجميع المكونات التي هو مثبتة بشكل عام إلى regهوtry النظام إلى ملف XML تسمى بيان، وتخزينها في نفس المجلد مثل تطبيق.

عزل مكون COM يتطلب أن تكون مسجلة تشغيل آلة الخاص بالمطور، ولكن لم يكن مسجَّل تشغيل جهاز الكمبيوتر الخاص بالمستخدم. لعزل أحد مكونات COM، كل ما تحتاج إليه تعيين مرجع's به خاصية Isolated صواب. بشكل افتراضي، th هو خاصية هو تعيين إلى خطأ ، مشيراً إلى أنه يجب معاملتها كمرجع regهوtered COM. إذا كان ترتيب هو خاصية هو صواب، فإنه يتسبب بملف بيان بنية لترتيب هو مكوّن في وقت البنية. ويؤدي أيضا المطابقة الملفات المراد نسخها إلى مجلد التطبيقات أثناء التثبيت.

عندما يصادف مولد بيان COM منعزل مرجع، تعداد الجميع CoClassالإدخالات المطابقة في مكتبة نوع مكوّن، لكل إدخال باستخدام بيانات تسجيل المطابقة الخاصة به، وإنشاء ملفات تعريف البيان لالجميع فئات COM في ملف مكتبة النوع.

نشر تسجيل-حر COM مكونات ClickOnce باستخدام

ClickOnceالتقنية توزيع well-suited لنشر COM مكونات معزول، لأن كليهماClickOnceوخالية من تسجيل COM تطلب مكون بيان المراد نشرها.

بشكل عام، يجب أن يوفر كاتب مكوّن بيان. إذا لم يكن كذلك، على الرغم من ذلك، Studio Vهوual هو قادرة على إنشاء بيان شكل تلقائي لمكون COM. يتم تنفيذ إنشاء البيان أثناء ClickOnceينشر معالجة؛ للحصول على مزيد من المعلومات، راجع نشر تطبيقات ClickOnce. كما تتيح لك هذه الميزة إلى ترقية المكونات قديم التي قمت بكتابة في بيئات التطوير السابقة مثل Visual أساسى 6.0.

هناك طريقتان لذلك ClickOnceCOM مكونات بنشر:

  • استخدم الإطلاق إلى نشر COM مكونات الخاص بك؛ ويعمل هذا تشغيل الجميع الأنظمة الأساسية المعتمدة.

  • استخدام الأصلية مكوّن التوزيع عزل (تعرف أيضا ب COM خالية من تسجيل). ومع ذلك، وهذا يعمل فقط تشغيل ‏‫النظام التشغيل ‏‫النظام التشغيل Windows XP أو النظام التشغيل أعلى.

مثال لعزل ونشر بسيط مكون COM

لتوضيح خالية من تسجيل مكون COM النشر، هذا المثال تاريخ الإنشاء أحد تطبيقات المستندة إلى Windows في Visual أساسى يرجع الأصلية معزولة مكون COM تم إنشاؤها باستخدام Visual أساسى 6.0 وتوزيعها باستخدام ClickOnce.

أولاً ستحتاج إلى إنشاء الأصلي مكون COM:

لإنشاء الأصلي مكون COM

  1. قم باستخدام Visual أساسى 6.0، من قائمة ملف ، انقر فوق جديد ، ثم مشروع.

  2. في صندوق الحوار مشروع جديد ، تحديد العقدة Visual أساسى و تحديد مشروع مكتبة الارتباط الديناميكي ActiveX. في المربع الاسم ، اكتب من VB6Hello.

    ملاحظة

    يتم اعتماد أنواع مشروع مكتبة الارتباط الديناميكي و ActiveX عنصر تحكم ActiveX فقط مع خالي من تسجيل COM؛ لا يتم اعتماد أنواع مشروع EXE بتحكم ActiveX و المستندات ActiveX.

  3. في من مستكشف الحل، انقر نقراً مزدوجاً فوق Class1.vb لفتح محرر نص.

  4. في Class1.vb، إضافة التعليمة البرمجية التالية بعد التعليمة البرمجية التي تم إنشاؤها ل Newأسلوب:

    Public Sub SayHello()
       MsgBox "Message from the VB6Hello COM component"
    End Sub
    
  5. قم بإنشاء مكوّن. من القائمة Build (بناء)، انقر فوق Build Solution (بناء الحل).

ملاحظة

يدعم خالية من تسجيل COM فقط ملفات DLL COM و التحكم في أنواع مشروع. لا يمكنك استخدام EXEs مع خالي من تسجيل COM.

والآن يمكنك إنشاء تطبيق يستند إلى Windows وقم بإضافة مرجع إلى COM مكوّن إليه.

لإنشاء تطبيق يستند إلى Windows ويستخدم مكون COM

  1. قم باستخدام Visual أساسى، من قائمة ملف ، انقر فوق جديد ، ثم مشروع.

  2. في مشروع جديد صندوق حوار، تحديد العقدة Visual أساسى وقم بتحديد تطبيقات Windows . في المربع الاسم ، اكتب من RegFreeComDemo.

  3. في من مستكشف الحلول، انقر فوق إظهار الجميع الملفات زر لعرض مشروع بالرجوع.

  4. يمين-انقر the مراجع عقدة و تحديد إضافة مرجع from the سياق menu.

  5. In the إضافة مرجع dialog صندوق, انقر the Browse علامة تبويب, التنقل إلى VB6Hello.dll, then تحديد it.

    من VB6Hello مرجع يظهر في قائمة مرجع s.

  6. أشر إلى مربع الأدوات، حدد زر عنصر تحكم، ثم قم بسحبه إلى Form1 النموذج .

  7. في الإطار خصائص ، قم بتعيين خاصية زر's نص إلى مرحبا ".

  8. انقر نقراً مزدوجاً فوق زر لإضافة تعليمات برمجية للمعالج، وفي ملف تعليمات برمجية، إضافة تعليمات برمجية بحيث يقوم المعالج بقراءة كما يلي:

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Dim VbObj As New VB6Hello.Class1
        VbObj.SayHello()
    End Sub
    
  9. قم بتشغيل التطبيق. من قائمة تصحيح ، انقر فوق ابدأ تصحيح الأخطاء .

بعد ذلك يجب عزلها عنصر تحكم. يتم تمثيل كل مكون COM الذي يستخدمه تطبيق الخاص بك في مشروع الخاص بك COM مرجع. هذه المراجع مرئي تحت المراجع عقدة في الإطار مستكشف الحل. (لاحظ أنه يمكنك إضافة مراجع أما مباشرة باستخدام الأمر إضافة مرجع من قائمة مشروع أو غير مباشر بواسطة سحب عنصر ActiveX عنصر تحكم إلى النموذج الخاص بك.)

تشرح الخطوات التالية كيفية عزل مكون COM ونشر تطبيق المحدث الذي يحتوي على معزول عنصر التحكم:

لعزل مكون COM

  1. في مستكشف الحل ، في العقدة مراجع ، تحديد VB6Hello المرجع.

  2. في الإطار خصائص ، قم بتغيير القيمة معزول خاصية من خطأ إلى صواب.

  3. من القائمة Build (بناء)، انقر فوق Build Solution (بناء الحل).

والآن، عند الضغط على F5، يعمل تطبيق كما هو متوقع، لكن الآن يكون تشغيل ضمن خالية من تسجيل COM. في ترتيب إلى لإثبات ذلك، حاول إلغاء تسجيل مكوّن VB6Hello.dll ويعمل RegFreeComDemo1.exe خارج IDE Studio Visual Basic. Th هو الوقت عند الزر هو النقر فوقه، لا تزال تعمل. إذا قمت بإعادة تسمية التطبيق مؤقتاً بيان، ستفشل مرة أخرى.

ملاحظة

يمكنك محاكاة غياب COM مكوّن بشكل مؤقت إلغاء تسجيل. افتح تعجيل الأوامر، انتقل إلى مجلد النظام الخاص بك بكتابة cd/d%windir%\system32 ، ثم قم بإلغاء تسجيل مكوّن بكتابة regsvr32/u VB6Hello.dll . يمكنك التسجيل عليه مرة أخرى بواسطة كتابة regsvr32 VB6Hello.dll .

الخطوة الأخيرة هو إلى publهوh تطبيق الذي يستخدم ClickOnce:

إلى ينشر تحديث تطبيق باستخدام مكون COM منعزل

  1. من قائمة بنية ، انقر فوق ينشر RegFreeComDemo.

    يظهر معالج ينشر.

  2. في "معالج النشر"، قم بتحديد الموقع تشغيل قرص الثابت للكمبيوتر المحلي حيث يمكن الوصول إليها وتم نشرها بفحص ملفات.

  3. انقر فوق إنهاء إلى نشر تطبيق.

إذا قمت بفحص الملفات publهوhed، لاحظ أن الملف sysmon.ocx هو المضمنة. يكون عنصر التحكم هو معزول إلى tally إلى هذا تطبيق، وهذا يعني أنه إذا كان آلة الخاص بالمستخدم النهائي لتطبيق آخر باستخدام الإصدار مختلف من عنصر التحكم، لا تتداخل مع هذا تطبيق.

الرجوع إلى أصلي تجميعات

يعتمد ‏‫Visual Studio مراجع إلى أصلي تجميعات Visual أساسى 6.0 أو C + +؛ مثل تسمى مراجع مراجع الأصلي. يمكنك معرفة ما إذا كان مرجع الأصلي بواسطة التأكد من أن له خاصية نوع ملف معين ب أصلي ActiveX.

لإضافة مرجع أصلي، استخدام الأمر إضافة مرجع، ثم استعرض إلى الملف الظاهري. Some مكونات place the بيان inside the DLL. في this حالة, you can simply اختيار the DLL itself و ‏‫Visual Studio will إضافة it كـ a أصلي مرجع if it detects that the مكوّن يحتوي على an embedded بيان. ‏‫Visual Studio will also automatically تضمين أي dependent ملفات أو تجميعات listed في the بيان if they are في the same مجلد كـ the مشار إليها مكوّن.

COM عنصر تحكم عزل makes it easy إلى نشر COM مكونات that do not already have بيانات. However, if a مكوّن هو supplied مع a بيان, you can مرجع the بيان directly. في fact, you should دوماً استخدم the بيان supplied بواسطة the الكاتب of the مكوّن wherever possible rather than using the معزول خاصية.

قيود مكون COM نشر متوفر-تسجيل

خالي من تسجيل COM يوفر مزايا واضحة عبر التقليدية توزيع التقنيات. ومع ذلك، فهناك بعض القيود و التحذيرات التي يجب أن يشير أيضا. حد أكبر هو أنه فقط يعمل تشغيل ‏‫نظام التشغيل ‏‫نظام التشغيل Windows XP أو الأحدث. مطلوب تطبيق COM خالية من تسجيل التغييرات في الطريقة التي يتم تحميل المكونات في الأساسية النظام تشغيل. لسوء الحظ، هناك هو لا يوجد طبقة اعتماد ذات المستوى منخفض ل regهوtration-free COM.

ليس كل مكون هو ترشيحه مناسبة ل regهوtration-free COM. مكون هو غير مناسبة إذا تحققت أي من الإجراءات التالية:

  • مكوّن هو خادم خاص بإلغاء العملية. لا يتم دعم الملقمات EXE؛ معتمدة فقط لملفات DLL.

  • مكوّن هو جزءا من النظام التشغيل، أو هو مكون النظام، مثل XML أو برنامج إنترنت مستكشف ومكونات الوصول إلى بيانات Microsoft Office 2010 Suite (MDAC). يجب اتباع نهج إعادة التوزيع من المؤلف مكوّن؛ فحص بائع.

  • مكوّن هو جزءا من تطبيق ما، مثل Microsoft المكتب 2010 Suite. على سبيل المثال، يجب عدم محاولة إلى عزل "نموذج كائن ‏‫‏‫Microsoft Excel". Th هو هو جزءا من المكتب ويمكن استخدامها فقط تشغيل جهاز كمبيوتر بتثبيت منتج المكتب الكامل.

  • مكوّن هو مصمم للاستخدام كوظيفة إضافية أو إضافية على سبيل المثال المكتب وظيفة--في، في أو عنصر تحكم مستعرض ويب. تتطلب هذه المكونات عادة نوع من نظام تسجيل المعرفة بالبيئة المضيفة التي خارج النطاق بيان نفسه.

  • مكوّن الذي يدير الأجهزة الفعلية أو الظاهرية للنظام، ل مثال، برنامج تشغيل جهاز للتخزين مؤقت لطباعة.

  • مكوّن هو "الوصول إلى بيانات" القابلة لإعادة التوزيع. تتطلب التطبيقات بيانات الوصول بيانات منفصلة القابلة لإعادة التوزيع بشكل عام إلى يتم تثبيت قبل أن يمكن تشغيلها. لا يجب محاولة عزل المكونات مثل كـ عنصر تحكم بيانات ADO Microsoft Office 2010 Suite Microsoft Office 2010 Suite OLE DB أو مكونات الوصول إلى البيانات Microsoft Office 2010 Suite (MDAC). بدلاً من ذلك، إذا كان تطبيق يستخدم MDAC أو SQL الخادم Express، يجب عليك تعيين لهم كـ المتطلبات المسبقة؛ راجع كيفية: تثبيت المتطلبات المسبقة مع تطبيقات ClickOnce.

في بعض الحالات، قد يمكن لمطور مكوّن إلى إعادة تصميم لخالي من تسجيل COM. إذا كان ترتيب هو هو غير ممكن، فيمكنك لا تزال البنية و publهوh التطبيقات التي يعتمد عليها من خلال نظام regهوtration قياسية تستخدم الإطلاق. لمزيد من المعلومات، راجع إضافة المتطلبات المسبقة مخصص.

أ مكون COM يمكن فصل مرة واحدة كل تطبيق. على سبيل المثال، لا يمكن عزل COM نفس مكوّن من الثاني مختلفة مكتبة فئة مشاريع التي تشكل جزءا من نفس تطبيق. هذا الإجراء سيؤدي إلى بنية رسالة تحذير، و سيفشل تطبيق لتحميل في وقت التشغيل. في ترتيب إلى تجنب هذه المشكلة، توصي Microsoft Office 2010 Suite تقوم بتغليف COM مكونات في مكتبة فئة واحدة.

هناك عدة سيناريوهات في أي regهوtration COM هو مطلوب تشغيل آلة بمطور، تشغيل الرغم من أن لا يتطلب نشر تطبيق regهوtration. Isolatedتتطلب خاصية مسجَّل مكون COM تشغيل الجهاز الخاص بالمطور بإنشاء تلقائي بيان أثناء الإنشاء. لا توجد لا توجد إمكانيات التقاط تسجيل استدعاء تسجيل الذاتي أثناء الإنشاء. أيضا، وأية فئات لتعريفه بعدم وضوح في مكتبة النوع لن تنعكس في البيان. عند استخدام مكون COM مع pre-existing بيان، مثل كـ مرجع أصلي، مكوّن قد لا تحتاج إلى مسجَّل وقت التطوير. ومع ذلك، regهوtration هو مطلوباً إذا كان مكوّن هو عنصر تحكم ActiveX وترغب في تضمينها في مربع أدوات التحكم ومصمم Windows Forms.

راجع أيضًا:

المبادئ

أمان ClickOnce والتوزيع