حل تجميعات في وقت التصميم

There هو a عام misconception that adding a reference إلى an تجميع through the .NET علامة تبويب of the إضافة مرجع dialog refers إلى an تجميع in the عمومي تجميع ذاكرة تخزين مؤقت (GAC). Th هو هو غير الحالة. المرجع هو أخذ فعلياً إلى تجميع مرجع متوسطة، التي هو، تجميع الذي يحتوي على الجميع المعلومات نوع وتوقيع، ولكن لا يتضمن أية تعليمات برمجية بالضرورة. تسرد علامة تبويب.NET مرجع تجميعات تتوافق مع وقت التشغيل التجميعات في إطار عمل.NET. بالإضافة إلى ذلك، يسرد مرجع تجميعات تتوافق مع وقت التشغيل التجميعات في المجلدات AssemblyFoldersEx المسجل المستخدم من قبل جهات خارجية.

-استهداف متعددة

تمكنك ‏‫‏‫‏‫Visual Studio 2010 الهدف إصدارات.NET Framework التي تعمل أما على شائعة لغة وقت تشغيل (CLR) الإصدار 2.0 أو الإصدار 4. يتضمن ذلك إصدارات.NET Framework 2.0، 3.0 و 3.5، 4 والاصدارات 1.0 و 2.0 و 3.0 من Silverlight. إذا كان إصدار جديد من برنامج.NET Framework التي هو استناداً إلى CLR الإصدار 2.0 أو الإصدار 4 هو إصدارها، ويمكن تثبيتها في إطار عمل باستخدام إحدى حزم استهداف، وبه تلقائياً ستظهر كهدف في Studio Vهوual. لمزيد من المعلومات، راجع ‏‫MSBuild Multitargeting.

كيفية عمل تحليل نوع

في وقت التشغيل، يحل CLR الأنواع في تجميع بواسطة البحث في GAC، الدليل حاوية، وفي أية مسارات probing. Th هو هو التي تمت معالجتها من قبل محمل fusion. ولكن، كيف المحمل fusion تعرف ما تبحث؟ This depends تشغيل a دقة made at تصميم الوقت, when the تطبيق هو built.

During the بنية, the compiler resolves تطبيق أنواع بواسطة using مرجع تجميعات. في .NET Framework versions 2.0, 3.0, و 3.5, the مرجع تجميعات are installed when the .NET Framework هو installed.

في the .NET الإصدار إطار العمل 4, the مرجع تجميعات are supplied بواسطة the targeting يحزم that ships مع the corresponding الإصدار of the .NET Framework SDK. The Framework itself provides فقط the وقت التشغيل تجميعات. في ترتيب إلى بنية applications, you need إلى يثّبت كلاهما the .NET Framework و the corresponding .NET Framework SDK.

When you الهدف a specific .NET Framework, the بنية النظام resolves الجميع أنواع بواسطة using the مرجع تجميعات في the targeting يحزم. At وقت التشغيل, the fusion loader resolves these same أنواع إلى the وقت التشغيل تجميعات, which are typically located في the GAC.

If مرجع تجميعات are غير متاح, then the بنية النظام resolves تجميع أنواع بواسطة using the وقت التشغيل تجميعات. Because وقت التشغيل تجميعات في the GAC are not distinguished بواسطة ثانوي الإصدار أرقام, it هو possible that دقة will be made إلى the wrong تجميع. This could happen, for مثال, if a جديد أسلوب introduced في the .NET الإصدار إطار العمل 3.5 هو مشار إليها while targeting الإصدار 3.0. The بنية will succeed, و the تطبيق will run تشغيل the بنية آلة, but will فشل when deployed إلى a آلة that does not have الإصدار 3.5 installed.

The targeting يحزم that now ships مع the .NET Framework SDK يتضمن a قائمة of الجميع of the وقت التشغيل تجميعات في that الإصدار of the Framework, called the redistribution (redist) قائمة. This makes it impossible for the بنية النظام إلى حل أنواع against the wrong الإصدار of the تجميع.

راجع أيضًا:

المبادئ

مفاهيم متقدم ‏‫MSBuild