كيف يمكنني الحصول على الأحدث من حل Visual Studio من سطر الأوامر؟

StackOverflow https://stackoverflow.com/questions/34204

سؤال

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

tf get يحصل فقط على محتويات المجلد بشكل متكرر (وليس الحل).لا ينظر إلى تبعيات المشروع وما إلى ذلك.هذا لن ينجح.

هل كانت مفيدة؟

المحلول

TFS لديه صافي SDK يسمح لك بإنشاء برامجك المخصصة التي تتفاعل مع خادم TFS.يمكنك كتابة برنامج صغير يقوم بالمهمة التي تحتاجها:

TeamFoundationServer tfs = TeamFoundationServerFactory.GetServer("MyServer");
VersionControlServer vcs = (VersionControlServer)tfs.GetService(typeof(VersionControlServer));

WorkSpace[] myWorkSpaces = vcs.QueryWorkSpaces("MyWorkSpaceName", "MyLoginName", "MyComputer");

myWorkSpaces[0].Get(VersionSpec.Latest, GetOptions.GetAll);

نصائح أخرى

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

إن تضمين كافة التبعيات غير البرمجية كعناصر حل (نحن ننظم مجلدات الحلول باستخدام نفس بنية المجلد مثل مجلدات التحكم المصدر الخاصة بها) يقلل من معرفة "الفودو" المطلوبة لفتح الحل وتجميعه للمطورين الجدد في المشروع.

سيكون من الجيد أن تتمكن من ربط أشجار المجلدات بأكملها بمجلد الحل في حل VS.

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

ابدأ في الدليل الرئيسي C:\Project\SupportingProjects

FOR /D %%G IN ("*") DO ECHO ..from....%%G && tf get C:\Projects\SupportingProjects\%%G 

::Get the latest for the Main project
tf get C:\Projects\MainProject /recursive 

في حالتي، يحتوي مجلد MainProject على ملف الحل وملف المشروع.

لقد وجدت هذا سهلا وبسيطا.

المزيد عن الأمر FOR: http://ss64.com/nt/for_d.html

حسنًا...يبدو أن لديك ثلاثة خيارات.

  1. في الملف الدفعي الخاص بك، قم بإصدار tf get في كل فرع دليل تريده.

  2. أعد تنظيم الحل الخاص بك بحيث تكون جميع التبعيات تحت نفس المسار الجذر.

  3. استخدم الطريقة المرئية للنقر بزر الماوس الأيمن على المشروع الذي تم تحميله وإصدار أمر الحصول عليه.

المرة الوحيدة التي يتم فيها التعرف على الحل فعليًا هي عندما يتم تحميل المشروع في IDE؛أو عندما يتم تحميله بواسطة خوادم البناء.

أعلم أنك ذكرت الملفات الدفعية، لكن دعني أطرح لك شيئًا آخر.

سأخمن أنك تستخدم إصدار 2005 من TFS.يحتوي عام 2008 على جميع عناصر الجدولة المضمنة.

ومع ذلك، يمكنك أيضًا استخدام CruiseControl.net للقيام بالبنيات المجدولة لك.لقد استخدمت كلاً من TFS 2008 وCruiseControl ويبدو أنهما يعملان بشكل جيد.

الحل الآخر الممكن هو استخدام بوويرشيل.الرابط التالي هو نموذج مشروع تعليمات برمجية يوضح كيفية الحصول على حل من TFS وإنشائه محليًا.يعد Powershell حلاً أفضل بكثير من الملفات الدفعية العادية.

http://www.codeproject.com/KB/install/ExtractAndBuild.aspx

لا تفعل هذا.VS ليس ذكيًا كما تعتقد.(كما يتضح من عمليات الفحص الغامضة وغير المجدية التي اختبرها الجميع لأكثر من 3 دورات للمنتج، بما في ذلك أنا وأنت.هذه ليست علامة على نظام موثوق!)

ما تصفه يعمل فقط مع مراجع مشروع إلى مشروع.سيؤدي تشغيل عمليات التحكم بالمصدر من Solution Explorer "بحسب التصميم" إلى حذف ما يلي:

  • مراجع المشروع إلى التجميع
  • الفيديو والصوت وملفات PDF وأي نوع آخر من الوسائط التي لا يدعمها VS ولكنها قد تلعب دورًا أساسيًا في المنتج
  • ملفات MSBuild *.targets التي يتم الرجوع إليها في مشاريعك
  • أي ملفات من أي نوع يتم الرجوع إليها من الأهداف المخصصة
  • أي ملفات تنفيذية تابعة لجهات خارجية تتطلبها عملية الإنشاء
  • إلخ

فقط قل لا إلى مزامنة غير مكتملة.في هذا الطريق، لا يوجد سوى الصداع.

قم بتشغيل 'tf get' بدون نطاق مسار من سطر الأوامر، أو انقر بزر الماوس الأيمن -> احصل على العقدة الجذر $/ في Source Control Explorer.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top