استوديو Microsoft Robotics ومشاكل المسار المطلق
-
22-09-2019 - |
سؤال
لقد قمت للتو بتثبيت Microsoft Robotics Studio 2008 R2 ، ويجب أن أعترف أنني صدمت لاكتشاف كيفية التعامل مع المسارات.
أول من الاستوديو يريد تثبيت نفسه في ملفي الشخصي (هذا على Vista):
C:\Users\MyUserName\Microsoft Robotics Dev Studio 2008 R2
أفترض أن هذا لأنه أثناء التطوير ، يجب أن أكتب الملفات إلى مجلد استوديو الروبوتات C:\Program Files
لا تذهب.
ثم عندما أقوم بإنشاء مشروع روبوتات جديد ، تتم إضافة الكثير من المسارات المطلقة التي تشير إلى استوديو الروبوتات إلى المشروع. إذا قمت بفحص مشروعي في عنصر تحكم المصدر وفحصه مطورًا آخر على جهازه ، فلن يتم حل المسارات المطلقة ولن يتم تجميع المشروع.
أيضًا ، نظرًا لأن جميع الخدمات يتم جمعها في مجلد واحد في مجلد Robotics Studio ، يبدو أن تطوير خدمات مستقلة متعددة على جهاز كمبيوتر واحد على الأقل مربكة.
هل لديك أي استراتيجيات جيدة للتعامل مع هذه الفوضى؟
المحلول
لقد اكتشفت الآن طريقة لتغيير مشروع Microsoft Robotics DSS Visual Studio إلى شيء يمكنك تجميعه وتشغيله في شجرة المصدر الخاصة بك بشكل مستقل عن مسار التثبيت في استوديو الروبوتات. فيما يلي وصف لما تحتاج إلى القيام به لتعديل المشروع:
أضف لك مسار بنو روبوتات استوديو طريق متغير البيئة لتكون قادرة على التنفيذ
dssproxy.exe
دون توفير مسار كامل. لقد قمت بتثبيت استوديو Robotics في مجلد ملفات البرامج لتجنب كتابة الملفات إلى مجلدات استوديو Robotics.افتح ال الخصائص صفحة للمشروع وحدد يبني التبويب. في ال انتاج | القسم تغيير مسار الاخراج إلى
Debug\bin
. بالنسبة لمشاريع .NET ، من المعتاد تجميع المجلداتbin\Debug
وbin\Release
لكن خدمة استضافة الروبوتات يتوقع للعيش في مجلد اسمهbin
وسيقوم بتخزين البيانات في المجلد فوقbin
مجلد.اذهب إلى التوقيع علامة التبويب وحدد مفتاح جديد في اختر ملف مفتاح اسم قوي علبة. يمكنك إما إنشاء المفتاح الخاص بك في تلك المرحلة أو استخدام
sn.exe
فائدة لتوليد مفتاح جديد. أو إذا كان لديك سياستك الخاصة لإنشاء مفاتيح اتبع ذلك. الsn.exe
يمكن العثور على فائدة فيtools
مجلد استوديو الروبوتات.في ال بناء الأحداث TAB EDIT سطر أوامر حدث ما بعد البناء:
dssproxy.exe /dll:"$(TargetPath)" /proxyprojectpath:"$(ProjectDir)Proxy" /keyfile:"$(SolutionDir)Key.snk" $(ProxyDelaySign) $(CompactFrameworkProxyGen) /binpath:"." @(ReferencePath->'/referencepath:"%(RootDir)%(Directory) "', ' ')
انتبه إلى الحجة
/keyfile
. أدخل تعبيرًا يحدد موقع ملف مفتاح الاسم القوي الذي تم إنشاؤه في الخطوة السابقة.انسخ الملفات
DssHost.exe
وDssHost.exe.config
(أوDssHost32.exe
وDssHost32.exe.config
لخدمة استضافة 32 بت) من مجلد Bin Robotics إلى مجلد المشروع وإضافة هذه الملفات إلى المشروع. تعيين بناء العمل إلى محتوى و انسخ دليل الإخراج إلى انسخ إذا أحدث. افعل الشيء نفسه ل ملف واضح لخدمتك. في الواقع ، لا يجب أن يكون ملف البيان في نفس المجلد مثل الخدمة ، لكن نسخه إلى مجلد الإخراج يتيح لك القيام بنشر XCOPY.في ال تصحيح علامة التبويب تغيير بدء البرنامج الخارجي إلى
DssHost.exe
في مجلد الإخراج في مشروعك. سيتعين عليك إنشاء المشروع مرة واحدة لنسخ الملف إلى مجلد الإخراج. نظف ال عمل اخراجي. تعيين وسائط سطر الأوامر إلى/p:50000 /t:50001 /m:DSSService1.manifest.xml
قم بتغيير اسم ملف البيان إلى الاسم المناسب في مشروعك. يمكنك تعديل أرقام المنافذ المستخدمة إما هنا أو في
DssHost.exe.config
ملف. إذا كنت تعمل في بيئة Windows محمية (UAC) ، فسيتعين عليك استخدامhttpreserve
أمر بمنح نفسك الوصول إلى منفذ معين. يجب عليك تشغيل هذا الأمر كمسؤول.لا يتم تخزين إعدادات التصحيح في ملف المشروع وسيتعين على كل مطور إنشاء إعدادات شخصية.
يجب عليك أيضًا تحديث إطلاق سراح التكوين وفقا لذلك.
نصائح أخرى
نظرًا لأنني كنت مهتمًا فقط بـ CCR من MS Robotics ، فأنا فقط أضيف هذه التجميعات كمرجع إلى أي مشروع أستخدمه معه ويتم القيام به فقط.
هذا يعمل دون أي مشاكل. لذلك إذا كنت مهتمًا أيضًا بجزء CCR و DSS من الاستوديو ، فقد يكون هذا الحل الخاص بك
رينير
نرى هذه المشكلة كثيرا. الحل الأسهل المطلق هو تحديد دليل التثبيت عند تثبيت استوديو الروبوتات ليكون "C: Program Files Microsoft Robotics Studio". وبهذه الطريقة ، يصبح نقل التعليمات البرمجية بين الآلات ، والتحقق من التحكم في المصدر ، وما إلى ذلك أقل مشكلة.
الخيار الآخر هو استخدام DSSprojectMigration ، والذي يتم تضمينه مع RDS. ما عليك سوى تشغيل DSSprojectMigration مقابل دليل المشروع الخاص بك ، وسوف يصحح جميع المسارات المتشددين.