مشاركة عبر


استكشاف أخطاء وقت التصميم في حلول Office

وتكون عادة المتصل بتنفيذ من IMessageFilter، في هذه الحالة سيتم إعلامك بالرفض قبل RetryRejectedCall الطريقة.

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

ضع صندوق القائمة أسفل هذه مهمة تعتمد تشغيل التسمية المهام التالية. في الإطار خصائص، قم بتعيين عرض إلى 300، و ثم انقر فوق يطبق.

في الإطار خصائص، قم بتعيين خاصية تسمية توضيحية إلى تحديد مهمة ل إضافة إلى قائمة المهام التابعة، تعيين عرض خاصية إلى 200، ومن ثم انقر فوق يطبق.

يتعذر على Visual Studio فتح مصمم Excel أو Word لمستند على مستوى المشاريع في الحالات التالية:

  • Excel أو Word مفتوح مسبقاً ويعرض مربع حوار مشروط. لفتح المصمم، تحقق مما إذا كانت Excel أو Word تتضمن مربع حوار مشروط مفتوح، و أغلق أية مربعات حوار مشروطة مفتوحة. إن لم يكن هناك مربعات حوار مشروطة مفتوحة، قد يكون هناك بعض الإجراءات الأخرى المطلوبة قبل أن يستجيب Excel أو Word.

  • يتم حاليًا تصحيح المشروع. لفتح مصمم ويب، قم بإيقاف أو إنهاء التصحيح.

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

لا يمكن بناء مشروع على مستوى المستند يعتمد على مستند بأذونات محظورة

إطار خصائص مجموعة الاسم إلى AddDependentTask، مجموعة ، تسمية توضيحية "إضافة مهمة التابعة" بتعيين العرض 100، و ثم انقر فوق يطبق. إذا كان المشروع يحتوي على مستند لديه أذونات مقيدة، لا يتم ترجمة المشروع، ثم تتلقى الرسالة التالية في نافذة قائمة خطأ:

فشلت عملية إضافة التخصيص.

إذا كنت تريد تضمين مستند لديه أذونات مقيدة، قم باستخدام مستند غير مقيد أثناء تطوير الحل و بنائه. ثم قم بتطبيق الأذونات المقيدة إلى المستند في موقع النشر بعد نشر الحل.

بعض الأحداث لا تٌرفع عند استخدام #C

كائنات Office التي تحتوي على أسلوب وحدث بنفس الاسم قد تم تقسيمها إلى كائنين في تجميع توافق Office الأساسي: كائن أساسي بكافة الخصائص و الأساليب، وكائن حدث يحتوي على أحداث بأسماء تتعارض مع خاصية أو أسلوب. تستخدم كائنات الحدث هذه اصطلاح تسمية objectname>_Event>. إن لم تشاهد حدثًا تتوقعه، قم بالتحويل إلى واجهة objectname>_Event>.

على سبيل المثال، هناك حدث ActivateEvent وأسلوب Activate لـ Workbook. لمعالجة هذا الحدث، استخدم WorkbookEvents_Event بدلًا من Workbook.

إنشاء متغيرات أعضاء في مقطع التصريحات (declarations):

private Excel.Workbook workbook;
private Excel.WorkbookEvents_Event wbEvents;
private Excel.WorkbookEvents_ActivateEventHandler activateEvent;

الاتصال بالحدث في Startup_:

wbEvents = (Excel.WorkbookEvents_Event)workbook;
activateEvent = new Excel.WorkbookEvents_ActivateEventHandler(ThisWorkbook_Activate);
wbEvents.Activate += activateEvent;

كتابة معالج حدث:

private void ThisWorkbook_Activate()
{
    // Your code goes here.
} 

يجب التحويل إلى WorkbookEvents_Event لأن Excel.Workbook.Activate يقوم بإرجاع الأسلوب Activate وليس الحدث ActivateEvent.

وكبديل لذلك، يمكنك تحويل الكائن إلى واجهة الحدث المطابق الخاصة به في Startup:

((Excel.WorkbookEvents_Event)(Globals.ThisWorkbook.InnerObject)).Activate += 
    new Excel.WorkbookEvents_ActivateEventHandler(ThisWorkbook_Activate); 

ثم اكتب معالج حدث للحصول على التعليمات البرمجية:

private void ThisWorkbook_Activate()
{
    // Your code goes here.
} 

لم يتم التعرف على مراجع لفئات Office

بعض أسماء الفئات، على سبيل المثال Application، موجودة في مساحات أسماء متعددة مثل Microsoft.Office.Interop.Word و System.Windows.Forms. لهذا السبب، البيان Imports/using أعلى قوالب المشروع يتضمن ثابت مؤهل باختصار، على سبيل المثال:

Imports Word = Microsoft.Office.Interop.Word
using Word = Microsoft.Office.Interop.Word;

استخدام هذا البيان Imports/using يتطلب منك التفرقة بين المراجع إلى فئات Office بمؤهل Word أو Excel، على سبيل المثال:

Dim doc As Word.Document
Word.Document doc;

سوف تحصل على أخطاء في حالة استخدام تصريح غير مؤهل، على سبيل المثال:

Dim doc As Document  ' Class is ambiguous
Document doc;  // Class is ambiguous

على الرغم من استيراد مساحة الاسم Word أو Excel و أنه لديك حق الوصول إلى كافة الفئات بداخله، يجب تأهيل كافة الأنواع بشكل كامل مع Word أو Excel لإزالة غموض مساحة الاسم.

يتم فقدان خصائص عناصر التحكم متى تقوم بإنشاء مشروع جديد يعتمد على مستند من مشروع موجود

في من حقل جديد صندوق حوار اكتب حقل مخفي في الحقل الاسم وثم انقر فوق ‏‏موافق . يجب إعادة تعيين الخصائص يدويًا لأي عناصر تحكم موجودة مسبقًا. بدلاً من ذلك، يمكنك الاحتفاظ بخصائص عنصر التحكم بإنشاء نسخة من المشروع الموجود بدلًا من إنشاء مشروع جديد، أو بتحميل المشروع الموجود في حل جديد (في المصمم) ونسخ ولصق عناصر التحكم من مستند موجود إلى مستند جديد.

تظهر عناصر التحكم كمستطيلات سوداء على المستند أو ورقة العمل

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

عناصر التحكم على قالب Word غير مرئية في Visual Studio.

إذا قمت بفتح قالب Word في مصمم Visual Studio، عناصر التحكم على القالب غير الموجودة في السطر مع النص قد لا تكون مرئية. وهذا لأن Visual Studio يفتح قوالب Word في عرض عادي. لعرض عناصر التحكم، انقر فوق قائمة عرض، أشر إلى عرض Microsoft Office Word ثم انقر فوق تخطيط الطباعة.

أسماء مجموعة بيانات Visual Basic المخزنة مؤقتًا لا تظهر بشكل صحيح في ذاكرة التخزين المؤقت

كائنات DataSet المنشأة باستخدام Visual Basic التي تحمل علامة Cached و WithEvents (بما في ذلك كائنات DataSet التي تم سحبها من نافذة مصادر البيانات أو مربع الأدوات لها خاصية CacheInDocument تم تعيينها إلى True) لديها تسطير أسفل السطر سابق لأسمائها في ذاكرة التخزين المؤقت. For example, if you create a DataSet and name it Customers, the CachedDataItem name will be _Customers in the cache. اسم وحدة نمطية? CreateNewProject، و ثم انقر فوق ServerDocumentإضافة.

تحدث أخطاء برنامج التحويل البرمجي بعد حذف عنصر تحكم NamedRange

إذا قمت بحذف عنصر تحكم NamedRange من ورقة عمل ليست ورقة العمل النشطة في المصمم، فإن التعليمات البرمجية الذي تم إنشاؤها بشكل تلقائي قد لا تتم إزالتها من مشروعك وقد تحدث أخطاء برنامج التحويل البرمجي. للتأكد من إزالة التعليمات البرمجية، يجب عليك دومًا تحديد ورقة العمل التي تحتوي على عنصر التحكم NamedRange لجعلها ورقة العمل النشطة قبل حذف عنصر التحكم. إن لم يتم حذف التعليمات البرمجية الذي تم إنشاؤها تلقائيًا عند حذف عنصر التحكم، فيمكنك أن تجعل المصمم يحذف التعليمات البرمجية من خلال تنشيط ورقة العمل وإجراء تغيير ما بحيث يتم وضع علامة على ورقة العمل على أنه تم تعديلها. عند إعادة بناء المشروع، تتم إزالة التعليمات البرمجية.

استخدام مسار HTTP إلى التجميع لا يعمل

الاحتمالان الرئيسيان:

  • ، قم بإنشاء Outlook الوظيفة الإضافية في مشروع يحمل الاسم TaskAddIn. يجب منح الثقة الكاملة للتجميع يدويًا. لمزيد من المعلومات، راجع تأمين حلول Office.

  • يقوم ASP.NET بتعطيل تحميل DLL بشكل افتراضي. حتى تقوم التجميعات بالتنزيل للمستخدم، يجب على مسؤول خادم الويب تغيير خصائص خدمات معلومات الإنترنت (IIS) للسماح بتنزيل ملفات DLL من الدليل حيث يتم تخزين التجميع. لمزيد من المعلومات، راجع تعليمات خدمات معلومات الإنترنت (IIS) عن طريق استعراض https://localhost/iisHelp على خادم الويب.

    لاختبار ما إذا كانت هذه هي المشكلة، يمكنك التحقق من سجل خادم الويب للطلبات مرفوضة للـ DLL. في حالة ظهور سبب آخر، قم بتعيين مصحح الأخطاء لقطع التنفيذ عند كافة الاستثناءات و التحقق من رسائل الخطأ.

المشاريع التي تم إنشاؤها في مواقع الشبكة UNC لا تقوم بتعديل نهج الأمان تلقائيًا

تقوم أدوات Visual Studio لمعالج مشاريع Office بتعديل نهج الأمان في مستوى المستخدم. إذا قمت بإنشاء مشروع في موقع شبكة UNC، يجب تعديل نهج الأمان في مستوى الجهاز لمنح الثقة الكاملة إلى التجميع قبل أن تتمكن من تشغيله. يجب إجراء تغييرات فى النهج على مستوى الجهاز يدويًا. لمزيد من المعلومات، راجع تأمين حلول Office.

لا يتم رفع الحدث DocumentChange عندما يكون المستند مفتوحًا

يتم رفع الحدث DocumentChange عند تغير المستند النشط. غالباً ما يتم أيضًا رفع الحدث عندما يكون مستند ما مفتوحًا. ومع ذلك، وبسبب أنه يمكن لـ Word فتح مستندات (على سبيل المثال من سطر الأوامر، أو من مستكشف Windows، أو من قائمة ملف في Word) بطرق مختلفة، الحدث DocumentChange لا يُرفع دومًا عندما يكون المستند مفتوحًا. يجب دائمًا أن يكون مرفوعاً عندما يتم تغيير المستند النشط بعد فتحه. إذا كنت تريد تنفيذ إجراءات عند فتح المستند، استخدم الحدث Startup.

لا يتم إيقاف مؤشرات الترابط بشكل صحيح بعد تصحيح الأخطاء

في الجزء القوالب، حدد منطقة النموذج Outlook ، قم بتسمية الملف Taskنموذجمنطقة، وثم انقر فوق إضافة. إذا قمت بإنشاء مؤشرات الترابط في حلك، يجب تسمية كل مؤشر ترابط ببادئة _VSTA للتأكد من أن مؤشرات الترابط هذه تتم معالجتها بشكل صحيح عند إيقاف التصحيح. في صندوق الحوار Nameمنطقة النموذج ملف Outlook الموجودة الخاصة بالموقع، قم بالاستعراض إلى الموقع Taskنموذجمنطقة.ofs، وحدد Taskنموذجمنطقة.ofs، وانقر فوق فتح، ثم انقر فوق التالي.

يتم رفع أحداث Excel بشكل مختلف في Internet Explorer عنها في Excel

إذا كان مصنف ما يتم استضافته داخل Internet Explorer، يتم رفع الأحداث بترتيب مختلف عما إذا كان المصنف مفتوحًا في Excel. بالإضافة إلى ذلك، بعض الأحداث يتم رفعها مرتين. إذا كان لديك حل يتضمن Internet Explorer، قم باختبار كيفية تأثير تسلسل الحدث المختلف على عملية حلك.

لا يتم رفع حدث جديد عندما يتم إنشاء مستند من قالب

عند استخدام موجه الأوامر لفتح قالب Word وإنشاء مستند جديد، يجب أن تستخدم المبدل z/ لرفع الحدث New. لا تقم بتضمين مسافة بعد z/، و إلا فسيفتح Word قالباً للتحرير بدلًا من إنشاء مستند جديد يستند إلى القالب. فعلى سبيل المثال: winword.exe /z"mytemplate.dot"

هذا يشبه استخدام المبدل t/، مع إضافة أن z/ يرفع الحدث New.

لا يتم رفع الحدث المفتوح عندما تكون ورقة عمل XML مفتوحة

إذا قمت بإسناد مشروع Excel على ورقة عمل غير أصلية موجودة (مثل تنسيق Excel XML)، لا يتم رفع الحدث Open عندما تكون ورقة العمل مفتوحة.

يتم تشغيل أسلوب BeforeClose لكن المستخدم يحتفظ بمصنف مفتوح

يمكن للمستخدم النهائي إلغاء عملية مصنف ما ومتابعة استخدام الحل الخاص بك بعد استدعاء معالج الحدث BeforeClose. يحدث هذا عندما يقوم المستخدم بإجراء تغييرات في ورقة عمل ثم يتخذ إجراءً لإغلاق المصنف دون حفظه أولًا. يتم استدعاء معالج الأحداث BeforeClose، ومن ثم يتم عرض مربع حوار إلى المستخدم يحتوي على خيار إلغاء عملية الإغلاق.

إذا قمت بوضع تعليمات برمجية في معالج الأحداث BeforeClose الذي يقوم بإغلاق اتصالات قاعدة البيانات أو بتنفيذ إجراءات تنظيف أخرى، هذه التعليمات البرمجية يمكن استدعاؤها أثناء استمرار عمل المستخدم مع الحل الخاص بك.

إدراج أوامر القصاصات الفنية لا تفعل شيئا في مصمم Visual Studio

تشغيل the Identify the رسالة فئات that will عرض this نموذج منطقة الصفحة, في the Which مخصص رسالة فئات will عرض this نموذج منطقة حقل, نوع IPM.مهمة.TaskFormRegion, و then انقر إنهاء. في the مهمة نموذج, نوع Dependent مهمة في the الموضوع حقل.

إنشاء a الكلمة مستند مشروع that has the اسم My إشارة مرجعية اختصار قائمة.

عند فتح برنامج Excel 2007 ثم إنشاء مشروع تخصيص Excel 2007 على مستوى المستند في Visual Studio، يتوقف المصنف الذي قمت بفتحه أولًا عن الاستجابة.

لحل هذه المشكلة، انقر فوق ورقة العمل المرئية في مصمم Visual Studio. يبدأ المصنف الذي قمت بفتحه أولًا في الاستجابة.

في Excel, there are الثاني cases في which you must استخدم the خاصية of the عنصر تحكم مضيف إلى pass the عنصر تحكم مضيف إلى a أسلوب أو خاصية:

Instead, استخدم the  خاصية of a عنصر مضيف إلى يكرر through الجميع مدارة عناصر التحكم (كلاهما host عناصر التحكم و Windows Forms عناصر التحكم) تشغيل the مستند أو ورقة عمل, و then بحث عن عناصر that مطابقة the نوع of the عنصر تحكم المضيف you are interested في. The following تعليمات برمجية مثال examines each عنصر تحكم تشغيل a الكلمة مستند و determines whether the عنصر تحكم هو a . For المزيد معلومات حول the خاصية of مضيف عناصر, see . Accessing جديد Excel 2010 و الكلمة 2010 الأعضاء في مشاريع That الهدف the .NET Framework 3.5 في Excel 2010 و الكلمة 2010 مشاريع التي تستهدف 3.5 إطار عمل.NET، الأعضاء التي تم تقديمها في المكتب 2010 غير متوفرة تشغيل عناصر مضيف ومضيف عناصر التحكم.

في هذه مشاريع، المضيف عناصر وعناصر تحكم المضيف فقط على الأعضاء التي كانت متوفرة في الإصدار 2007 Microsoft المكتب الالنظام. للوصول إلى عضو الذي تمت إضافته في Excel 2010 أو الكلمة 2010، استخدم خاصية عنصر التحكم مضيف لإرجاع المصدر الأصلي كائن، وعندها الوصول إلى العضو تشغيل ذلك كائن. على سبيل المثال، في الكلمة 2010، الكائنات الخصائص التي يمكن استخدامها لتحديد ما إذا كان عنصر تحكم محتوى صندوق الاختيار هو المحددة (th هو خاصية هو غير متوفرة في الكلمة 2007، لأنه ليس لدى الكلمة 2007 عناصر تحكم محتوى صندوق الاختيار). في الكلمة 2010 المشاريع التي تستهدف 3.5 إطار عمل.NET, عنصر تحكم مضيف لم يكن خاصية.

يوضح المثال تعليمات برمجية التالي كيفية استخدم خاصية للوصول إلى خاصية الأساسية الكائن.

راجع أيضًا:

المهام

استكشاف أخطاء وقت التشغيل في حلول Office

المبادئ

المهام الشائعة في برمجة Office

موارد أخرى

تأمين حلول Office

استكشاف أخطاء حلول Office وإصلاحها