none
Publish לאפליקציית Clickonce לאחר Build בשרת ה- TFS RRS feed

  • שאלה

  • שבוע טוב.
    יש לי שאלה שאשמח לקבל מהקהילה תשובה אליה, או הפניה לפתרון ממקור אחר.
    יש לי מספר פרויקטים (.exe) שאני עושה להם Build דרך ה-TFS.
    אני רוצה שפרויקט אחד מהם יבצע התקנת ClickOnce אוטומטית, רק אם הוא רץ מ- Build Definition מסוים (וכמובן שגם לא יעשה התקנה מכל Build רגיל שאני עושה דרך הvisual-Studio).

    קודם כל אשמח לשמוע הצעות לביצוע. אני משתמש בTFS 11.0.50727.1
    גם דרך שימוש בסקריפט Power-Shell שירות אוטומטית בסיום ה- Build Definition בשרת יתקבל בברכה.

    דרך הניסיון שלי הייתה להוסיף לפרויקט משתנה
     <Target Name="AfterBuild" Condition=" '$(ShobPublish)' == '1' ">
         <MSBuild
         Projects="..\SW101\SW101.csproj"
         Targets="Publish;Build"
          Properties="PublishDir=C:\ClickOnce\"/>
      </Target>

    * '$(ShobPublish)' הוא משתנה שאני יצרתי.
    * והוספתי רק לBuild Definition המסוים תחת MSbuild Arguments הערך /p:ShobPublish=1

    ועכשיו הבעיה:
    אם הTarget Name="AfterBuild" הוא ללא תנאי, אכן התקנת ClickOnce מתבצעת.
    אם הTarget Name="AfterBuild" הוא עם התנאי, אכן Build דרך ה-visual-Studio לא יוצר התקנה, אבל שאני שולח הפרמטר ShobPublish=1 דרך ה- MS-Build אני מקבל הודעת שגיאה:
    There is a circular dependency in the target dependency graph involving target "AfterBuild"

    ניסיתי שפרויקט אחר שרץ הTFS יריץ Publish לפרויקט SW101 אבל גם אז אני מקבל השגיאה, מכיוון ו- SW101 שאני מתקין צריך לקבל ירושה ממנו (וגם מהרבה פרויקטים אחרים).

    האם יש הצעות???
    בתודה מראש,


    -עודד
    יום ראשון 25 מאי 2014 15:03

תשובות

  • שלום.

    מצטער שלא עדכנתי קודם לכן, היה לי פרויקט מקביל שהייתי עסוק בו.

    הלינק אכן נתן לי כיוונים חדשים, בסופו של דבר הפתרון היה מאוד פשוט לבעיית התלויות.

    שניתי את הפרויקט שלי מ-
    Targets="Publish;Build

    ל-
    Targets="PublishOnly

    כך שהוא לא מבצע BUILD פעמיים ורק לאחר שהפרויקט התקמפל הוא מבצע PUBLISH ב- After Build.

    עכשיו יש לי בעיה חדשה אבל אני יודע כיצד לפתורה:

    הBUILD בשרת נכשל במהלך הPUBLISH אך זאת מכיוון ולשרת הTFS שלנו לא מותקן SDK ל .NET FrameWork

    אני מצפה שלאחר התקנתו הPUBLISH יצליח.
    (כרגע הוא לא מוצר את Setup.Bin)

    תודה לכולם




    • נערך על-ידי Oded Sneh יום שני 02 יוני 2014 12:39
    • סומן כתשובה על-ידי Dan MorgensternModerator יום שני 02 יוני 2014 17:47
    יום שני 02 יוני 2014 12:38

כל התגובות

  • הייתי מנסה כיוון אחר

    במקום פרמטרים/משתנים - למה לא ללכת על קונפיגורציה נוספת ל- solution?

    בנוסף ל- debug/release תוסיף קונפיגורציית click once שבקונפיגורציה הנ"ל יש סקריפט שירוץ ב- post build

    זה לא ישפיע על קומפילציות מקומיות בסטודיו ולא על בילדים אחרים - צריך ב- build definition לבחור את הקונפיגורציה הנ"ל.


    דן

    יום ראשון 25 מאי 2014 17:56
    מנחה דיון
  • הרעיון אכן נשמע נכון,

    אבל איזה סקריפט שירוץ ב- post build עושה publish לאפליקציית Click-once ?


    יום שני 26 מאי 2014 06:57
  • אז בוא נשאר בכיוון הראשון וננסה לטפל בבעית התלויות

    בדוק את זה

    http://social.msdn.microsoft.com/Forums/vstudio/en-US/3ba7b321-71f8-4176-a1b5-53be33f0622a/error-msb4006-there-is-a-circular-dependency-in-the-target-dependency-graph-involving-target?forum=msbuild


    דן

    יום שני 26 מאי 2014 09:20
    מנחה דיון
  • עודד האם יש עדכון בסטטוס השאלה? האם בדקת את מה שהציע דן?

    תודה.


    מיקרוסופט מציעה שירות זה ללא תשלום, למטרת סיוע למשתמשים והעשרת הידע הקשור בטכנולוגיות ובמוצרים של מיקרוסופט. תוכן זה מתפרסם כפי שהוא והוא אינו מעיד על כל אחריות מצד מיקרוסופט.

    יום ראשון 01 יוני 2014 11:07
  • שלום.

    מצטער שלא עדכנתי קודם לכן, היה לי פרויקט מקביל שהייתי עסוק בו.

    הלינק אכן נתן לי כיוונים חדשים, בסופו של דבר הפתרון היה מאוד פשוט לבעיית התלויות.

    שניתי את הפרויקט שלי מ-
    Targets="Publish;Build

    ל-
    Targets="PublishOnly

    כך שהוא לא מבצע BUILD פעמיים ורק לאחר שהפרויקט התקמפל הוא מבצע PUBLISH ב- After Build.

    עכשיו יש לי בעיה חדשה אבל אני יודע כיצד לפתורה:

    הBUILD בשרת נכשל במהלך הPUBLISH אך זאת מכיוון ולשרת הTFS שלנו לא מותקן SDK ל .NET FrameWork

    אני מצפה שלאחר התקנתו הPUBLISH יצליח.
    (כרגע הוא לא מוצר את Setup.Bin)

    תודה לכולם




    • נערך על-ידי Oded Sneh יום שני 02 יוני 2014 12:39
    • סומן כתשובה על-ידי Dan MorgensternModerator יום שני 02 יוני 2014 17:47
    יום שני 02 יוני 2014 12:38