كيفية إظهار عنصر العمل المشارك من التعليمات البرمجية؟

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

  •  06-07-2019
  •  | 
  •  

سؤال

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

والآن والشرط هو أن تضيف أيضا workitem ذات الصلة عند التدقيق في الملفات، لقد غوغليد حول وتصفحها بعض العينات SDK ولكن لم أكن قادرا على فهم ما إذا كان هناك وسيلة لاظهار شكل نفس النوافذ التي تسمح للمستخدم ل كود المنتسبين إلى workitem من التعليمات البرمجية أو يفعل لدينا لتنفيذ النوافذ كاملة شكل من التعليمات البرمجية (استرداد وworkitems البحث، وربطها بتنفيذ الإيداع وهلم جرا). سيكون موضع تقدير أي معلومات لأن بين حل الدولتين وهناك الكثير من الاختلاف في مدة كم كود نحن بحاجة إلى الكتابة.

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

المحلول 2

ولقد دققت مع الاستشارات MS ولا توجد وسيلة لإظهار نافذة الإيداع التي يستخدمها TFS أو ملحق shell دون اللجوء إلى رمز المستوى المنخفض التي ليست آمنة حقا.

والحل لذلك ممكنا إلا هو استخدام TFS API لإنشاء جديد C # السيطرة / مشروع لتقليد نافذة الإيداع TFS.

والتحيات ماسيمو

نصائح أخرى

وهنا بعض رمز للمساعدة في تحديث workItems. أيضا، حاول [هذا الرابط] [1] لمزيد من المعلومات.

using System;
using System.Collections.Generic;
using System.Text;
using Microsoft.TeamFoundation.Client;
using Microsoft.TeamFoundation.WorkItemTracking.Client;


namespace WorkItemTrackingSample2
{
    class Program
    {
        static void Main(string[] args)
        {
            // Connect to the server and the store.
            TeamFoundationServer tfs = TeamFoundationServerFactory.GetServer("YourTfsServerNameHere");
            WorkItemStore workItemStore = (WorkItemStore)tfs.GetService(typeof(WorkItemStore));
            // Get a specific WorkItem from the store.
            //   Replace "12345" with a WorkItem ID appropriate for testing.
            WorkItem workItem = workItemStore.GetWorkItem(12345);

            // Save the existing Priority so we can restore it later.
            int oldPriority = (int)workItem.Fields["Priority"].Value;

            // Set the Priority to an arbitrarily high number.
            workItem.Fields["Priority"].Value = 9999;

            // Display the results of this change.
            if (workItem.IsDirty)
                Console.WriteLine("The workItem has changed, but has not been saved.");

            if (workItem.IsValid() == false)
                Console.WriteLine("The workItem is not valid.");

            if (workItem.Fields["Priority"].IsValid == false)
                Console.WriteLine("The workItem's Priority field is not valid.");

            // Tries to save the invalid WorkItem.
            try
            {
                workItem.Save();
            }
            catch (ValidationException)
            {
                Console.WriteLine("The workItem threw a ValidationException.");
            }

            // Set the priority to a more reasonable number.
            if (oldPriority == 1)
                workItem.Fields["Priority"].Value = 2;
            else
                workItem.Fields["Priority"].Value = 1;

            // If the WorkItem is valid, saves the changed WorkItem.
            if (workItem.IsValid())
            {
                workItem.Save();
                Console.WriteLine("The workItem saved this time.");
            }

            // Restore the WorkItem's Priority to its original value.
            workItem.Fields["Priority"].Value = oldPriority;
            workItem.Save();
        }
    }
}


  [1]: http://msdn.microsoft.com/en-us/library/bb130323(VS.80).aspx
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top