عند تطوير مشروع مؤخرًا، خططت لاستخدام NDoc لإنشاء وثائق مساعدة لمكتبة الفصل. لقد قمت بتنزيل الإصدار الصيني 1.3 من Percyboy، وذكرت الوثائق أنه يدعم .net2.0، ومع ذلك، عند استخدامه، وجدت حدوث استثناء عند تطبيق NDoc لإنشاء مشروع NDoc جديد من الحل، ولم يتمكن مستند المساعدة من ذلك. يتم إنشاؤها بنجاح.
قم بتنزيل البرنامج المصدر، واستخدم تحويل vs.net2005 لفتح حل ndoc لتصحيح الأخطاء، وتعديل الخطأ، وتمرير تصحيح الأخطاء، ويتم تسجيل الأخطاء والحلول ذات الصلة على النحو التالي يمكن التعامل مع التجميع الذي تم إنشاؤه بواسطة vs.net وفقًا لذلك.
1. إذا كان المشروع الموجود في الحل موجودًا في دليل باسم صيني، فلا يمكن معالجة الاستثناء الذي تم طرحه. والسبب هو أنه عندما يقوم ndoc بتحليل ملف الحل، فإنه يستخدم ترميز UTF لفتح ملف الحل، مما يؤدي إلى عدم معالجة الأحرف الصينية بشكل صحيح. الحل: افتح ملف الحل ضمن مشروع واجهة المستخدم الرسومية، وحدد موقع طريقة القراءة، واستخدم (reader=new StreamReader(path)) لفتح الملف باستخدام (reader=new StreamReader(path,System.Text.Encoding.GetEncoding(0) )))يستبدل. للتعرف على الاستخدام المحدد لـ StreamReader، يرجى الرجوع إلى msdn.
2. عند تحليل ملفات المشروع، تكون ملفات المشروع التي تم إنشاؤها بواسطة vs.net2005 هي في الأساس ملفات xml، ولكن بعضها يحتوي على علامات <?xml version="1.0" encoding="utf-8"?>، وبعض ملفات المشروع لا تحتوي على علامات، أسباب غير معروفة، وليس لدي الوقت لتحليل الأسباب المحددة، إذا كان أي شخص يعرف، من فضلك قل لي. يؤدي هذا إلى الحاجة إلى معالجة ملفات المشروع على أساس كل حالة على حدة، لقد قمت بتحليل فكرة ndoc الأصلية، وهذا هو الحال أيضًا. ربما كانت تنسيقات ملفي المشروع في الإصدارات قبل عام 2005 مختلفة، لذلك عالجتها ndoc على أساس كل حالة على حدة عند تحليل ملفات المشروع. ومع ذلك، على الرغم من وجود اختلافات في ملفات المشروع التي تم إنشاؤها باستخدام vs.net2005، فإن التنسيق هو نفسه ولا يحتاج إلى معالجته على أساس كل حالة على حدة. الحل: افتح ملف المشروع ضمن مشروع واجهة المستخدم الرسومية، وحدد موقع GetConfiguratin(string configName)، وقم بتغيير الكود التالي:
إذا (_ProjectDocument.FirstChild.Name == "المشروع")
{
العقد = _ProjectNavigator.Select(string.Format("VS2005:Project/VS2005:PropertyGroup[@Condition=" '$(Configuration)|$(Platform)' == '{0}|AnyCPU' "]"، configName )، _ProjectNamespaceManager);
}
آخر
{
العقد = _ProjectNavigator.Select(String.Format("/VisualStudioProject/CSHARP/Build/Settings/Config[@Name='{0}']"، configName));
}
استبدل بـ:
العقد = _ProjectNavigator.Select(string.Format("VS2005:Project/VS2005:PropertyGroup[@Condition=" '$(Configuration)|$(Platform)' == '{0}|AnyCPU' "]"، configName )، _ProjectNamespaceManager)؛
بعد إجراء المعالجة المذكورة أعلاه وتمرير التجميع، يمكن معالجة استخدام وظيفة ndoc لإنشاء مشروع ndoc جديد من حل .net بشكل طبيعي، لكنني لا أعرف ما إذا كانت هذه المعالجة سيكون لها أي آثار سلبية على الحلول التي تم إنشاؤها بواسطة الإصدارات قبل عام 2005. ومع ذلك، فإن وقت الإطلاق لعام 2005 ليس قصيرًا، وكان من المفترض أن يتم ترحيل معظم المشاريع إلى عام 2005، لذلك لا ينبغي أن يكون التأثير كبيرًا.
http://www.cnblogs.com/yxy21969/archive/2006/11/28/575257.html