/ (خيارات المحول البرمجي #C)

يتسبب في جعل برنامج التحويل البرمجي بجعل المعلومات من نوع COM في التجميعات المحددة متوفرة لمشروعك الذي تقوم بترجمتة حالياً.

/link:fileList
// -or-
/l:fileList

الوسيطات

  • fileList
    مطلوبة. قائمة أسماء ملفات التجميع المحددة بفواصل . إذا كان اسم الملف يحتوي على مسافة، ضع الاسم ضمن علامات اقتباس.

ملاحظات

/link الخيار يتيح لك نشر أحد التطبيقات التي تم تضمنت معلومات نوع. يمكن بعد ذلك استخدام التطبيق على الأنواع في تجميع وقت التشغيل الذي يقوم بتطبيق معلومات نوع مضمن دون الحاجة إلى مرجع لتجميع وقت التشغيل. إذا كان يتم نشر الإصدارات المختلفة من تجميع وقت تشغيل ,التطبيق الذي يحتوي على معلومات نوع مضمن يمكنها العمل مع الإصدارات المختلفة دون الحاجة إلى إعادة تحويل. على سبيل المثال ، راجع الإرشادات التفصيلية: تضمين أنواع من التجميعات مدارة (C# و Visual Basic).

استخدام خيار /link مفيد بشكل خاص عند العمل مع توافق COM. يمكنك تضمين أنواع COM بحيث أن التطبيق الخاص بك لم يعد يتطلب إمكانية تجميع توافق الأساسي (PIA) على الكمبيوتر الهدف. الخيار/link يرشد برنامج التحويل البرمجي لتضمين معلومات نوع COM من تجميع إمكانية التشغيل المتداخل المشار إليه إلى التعليمات البرمجية الناتجة عن عملية الدمج . يتم تعريف نوع COM بواسطة قيمة CLSID (GUID) . ونتيجة لذلك، يمكن تشغيل التطبيق الخاص بك على كمبيوتر الوجهة الذي قام بتثبيت نفس أنواع COM بنفس قيم CLSID. تطبيقات أتمتة Microsoft Office هي مثال جيد. لأن التطبيقات مثل Office عادة تحتفظ بنفس قيمة CLSID عبر إصدارات مختلفة, يمكن للتطبيق الخاص بك استخدام أنواع COM المشار إليها بالإضافة إلى .NET Framework 4 أو إصدار أحدث مثبت على كمبيوتر الوجهة و يستخدم التطبيق الخاص بك الأساليب أو الخصائص أو الأحداث التي تم تضمينها في أنواع COM المشار إليها.

خيار/link يقوم بتضمين الواجهات ,والبنيات ، و المفوضين فقط. تضمين فئات COM غير معتمد.

ملاحظة

عند إنشاء مثيل لنوع COM مضمن في التعليمات البرمجية يجب عليك إنشاء المثيل باستخدام الواجهة المناسبة. محاولة إنشاء مثيل لنوع COM مضمن باستخدام أسباب CoClass يعد خطأ.

لتعيين خيار /link في Visual Studioأضف مرجع تجميع ثم عيّن خاصية Embed Interop Types لتكون "صواب true. لافتراض لـ Embed Interop Types هو false.

إذا قمت بربط تجميع COM (التجميع أ) الذي هو نفسه يشير لتجميع COM آخر (التجميع B) ، لديك أيضاً ارتباط للتجميع B إذا تحقق أي مما يلي:

  • نوع من التجميع A يرث من نوع أو يطبّق واجهة من تجميع B.

  • حقل ,أو خاصية ،أو حدث ,أو أسلوب له نوع إرجاع أو نوع معلّمة من التجميعB تم استدعاؤه.

مثل / مرجع صواب ، /link صواب يستخدم ملف استجابة Csc.rsp المراجع المستخدمة بشكل متكرر .NET Framework التجميعات. استخدم خيار المحول البرمجي / noconfig إذا لم تكن تريد برنامج التحويل البرمجي أن يستخدم ملف Csc.rsp.

/link هو النموذج القصير من/l.

العوام و الأنواع المضمّنة

تصف المقاطع التالية القيود على استخدام أنواع عامة في التطبيقات التي تضمّن أنواع توافق.

الواجهات العامة

لا يمكن استخدام الواجهات العامة المضمنة من تجميع إمكانية التشغيل المتداخل. كما هو موضح في المثال التالي:

// The following code causes an error if ISampleInterface is an embedded interop type.
ISampleInterface<SampleType> sample;

أنواع التي تتضمن معلمات عامة

الأنواع التي لديها معلّمة عامة مضمن نوعها من تجميع إمكانية التشغيل المتداخل ,لا يمكن استخدامها إذا كان هذا النوع من تجميع خارجي. لا ينطبق هذا التقييد على الواجهات. على سبيل المثال، ضع في الاعتبار واجهة Range التي يتم تعريفها في تجميع Microsoft.Office.Interop.Excel . إذا ضمّنت مكتبة أنواع إمكانية التشغيل المتداخل من تجميع Microsoft.Office.Interop.Excel ثم يعرض الأسلوب بإرجاع نوع عام يحتوي على معلمة من نوع واجهة Range ، يجب أن أن يقوم الأسلوب بإرجاع واجهة عامة ، كما هو موضح في أمثلة التعليمات البرمجية التالية.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Microsoft.Office.Interop.Excel;

public class Utility
{
    // The following code causes an error when called by a client assembly.
    public List<Range> GetRange1() {


...


}

// The following code is valid for calls from a client assembly.
public IList<Range> GetRange2() {


...


    }
}

في المثال التالي، يمكن لرمز العميل استدعاء الأسلوب الذي يرجع الواجهة العامة IList دون خطأ.

public class Client
{
    public void Main()
    {
        Utility util = new Utility();

        // The following code causes an error.
        List<Range> rangeList1 = util.GetRange1();

        // The following code is valid.
        List<Range> rangeList2 = (List<Range>)util.GetRange2();
    }
}

مثال

ملف مصدر التعليمة البرمجية التالي OfficeApp.cs و تجميعات مرجع من COMData1.dll و COMData2.dll لإنتاج OfficeApp.exe.

csc /link:COMData1.dll,COMData2.dll /out:OfficeApp.exe OfficeApp.cs

راجع أيضًا:

المهام

الإرشادات التفصيلية: تضمين أنواع من التجميعات مدارة (C# و Visual Basic)

المرجع

/reference (خيارات المحول البرمجي #C)

/noconfig (خيارات المحول البرمجي C#)

نظرة عامة حول إمكانية التشغيل المتداخل (C# البرمجة الدليل)

المبادئ

إنشاء سطر الأوامر باستخدام csc.exe

موارد أخرى

(خيارات المحول البرمجي #C)