שינוי הגדרות ClickOnce בהתאם לתצורת הבנייה שנבחרה (גירסת .NET Framework בלבד)

עודכן דף :
תאריך יצירת דף :

סביבה

מסגרת
  • טופסי Windows (.NET Framework) באופן כללי
  • WPF (.NET Framework) באופן כללי

הנחת יסוד

התוכן של עצות אלה הוא הנחות פרוייקט עבור .NET Framework. במקרה של .NET (Core), באפשרותך להגדיר את הגדרות הפרסום של ClickOnce ביחידת תצורת הבנייה, לכן אנא פרסם כרגיל.

הוא גם מניח שיש לך מספיק ידע כדי להשתמש ב- ClickOnce בדרך כלל.

בהתחלה

מכיוון שפרוייקט .NET Framework יכול לכלול הגדרת פרסום אחת בלבד של ClickOnce, לדוגמה, כדי לפרסם עם הגדרות שונות בגירסת Build של באגים ובבניית Build של Release, עליך לשנות את ההגדרות באופן ידני בכל פעם לפני הפרסום.

באפשרותך לקבל שתי הגדרות על-ידי קיבוץ הפרוייקטים ל- DLL ויצירת שני פרוייקטים נפרדים לפרסום. תהיה לך אותה תצורה פעמיים, ואם יש קבצי משאבים הדרושים לפרסום, עליך להיות שניים מהם בכל פעם, כך שהניהול יהיה בעייתי.

סעיף זה מתאר כיצד ליצור קובץ אצווה (.bat) כמה הגדרות הדרושות לך ולפרסם את ClickOnce.

קביעת תצורה של ClickOnce

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

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

להלן דוגמה לתצורה:

לאחר שהקלדת, שמור את הפרוייקט.

יצירת קובץ .bat לפרסום ClickOnce

מכיוון שהוא מונפק עם פקודה, ניתן לבצע אותו במדיות אחרות כגון PowerShell, אך הפעם הוא נוצר כקובץ BAT.

באפשרותך ליצור את הקובץ בכל מקום, אך למטרות פשטות, אצור אותו במיקום של קובץ הפתרון (.sln). מכיוון שמדובר בקובץ BAT, קידוד התווים הוא Shift-JIS. PS1 יכול להיות UTF-8 (BOM).

פתח את קובץ ה- BAT בעורך טקסט והקלד: שים לב ש- PowerShell עשוי להתמודד עם בריחה באופן שונה.

call "C:\Program Files\Microsoft Visual Studio\2022\Community\Common7\Tools\VsDevCmd.bat"
cd %~dp0
msbuild ClickOnceBuildConfiguration.sln /t:Publish /p:Configuration=Debug /p:PublishUrl="publish\Debug\\" /p:InstallUrl="\\xxxxServer\publish_Debug\\"

השורה הראשונה מצביעה על המיקום של "שורת הפקודה למפתח". נתיב זה תלוי בגירסה של Visual Studio שאתה מתקין.

כל חלק בנתיב תלוי בתנאים הבאים:

קבצי תוכניות
תנאי נתיב
קבצי תוכניות
  • אם אתה משתמש במערכת הפעלה של 32 סיביות
  • אם אתה משתמש בגירסת 64 סיביות של Visual Studio במערכת הפעלה של 64 סיביות
קבצי תוכניות (x86)
  • אם אתה משתמש בגירסת 32 סיביות של Visual Studio במערכת הפעלה של 64 סיביות
2022
זה תלוי בגירסה של Visual Studio שאתה מתקין.
קהילה
זה תלוי במהדורה של Visual Studio שאתה מתקין. "קהילה", "מקצועי", "אנטרפרייז" וכו 'יוכנסו.

השורה השנייה מעבירה את הספרייה הנוכחית למיקום של קובץ ה- BAT.

השורה השלישית היא פקודת העיבוד של ClickOnce build. המשמעות של כל פרמטר היא כדלקמן.

תיאור שם פרמטר
msbuild פקודה שמבצעת את תהליך הבנייה. נדרש ונכתב ראשון.
ClickOnceBuildConfiguration.sln מתאר את שם הקובץ של הפתרון שיש לבנות.
/t:Publish מציין תהליך בנייה של ClickOnce.
/p:Configuration=Debug מציין את תצורת הבנייה שהגדרת עבור הפתרון שלך. אם ברצונך לשנות את תצורת איתור הבאגים שתיבנה, שנה את הטקסט בחלק "איתור באגים".
/p:PublishUrl="publish\Debug\\" החלף את הערך של "מיקום תיקיה ציבורית" במסך הפרסום של Visual Studio במחרוזת שצוינה והפעל אותו.
/p:InstallUrl="\\xxxxServer\publish_Debug\\" החלף את הערך של "כתובת URL של תיקיית התקנה" במסך הפרסום של Visual Studio במחרוזת שצוינה והפעל אותה.

חלק מהפרמטרים חולצו, אך ראה את הקישורים הבאים עבור פרמטרים אחרים:

כדוגמה הפעם, נשנה את פרמטרי הפרסום של ClickOnce בכל באגים ו- Release build, כך שניצור אותו כדלקמן.

פורסם על ידי ClickOnceDebug.bat

call "C:\Program Files\Microsoft Visual Studio\2022\Community\Common7\Tools\VsDevCmd.bat"
cd %~dp0
msbuild ClickOnceBuildConfiguration.sln /t:Publish /p:Configuration=Debug /p:PublishUrl="publish\Debug\\" /p:InstallUrl="\\xxxxServer\publish_Debug\\"

ClickOnceRelease פורסם .bat

call "C:\Program Files\Microsoft Visual Studio\2022\Community\Common7\Tools\VsDevCmd.bat"
cd %~dp0
msbuild ClickOnceBuildConfiguration.sln /t:Publish /p:Configuration=Release /p:PublishUrl="publish\Release\\" /p:InstallUrl="\\xxxxServer\publish_Release\\"

ClickOnce מפרסם ביצוע קובץ BAT

נסה להפעיל כל קובץ BAT.

שורת הפקודה מופעלת והבנייה מתחילה.

למעשה, קובץ ה- BAT שנוצר הפעם הוא רק תהליך עד לבנות, ולכן הקובץ אינו נוצר ב"מיקום התיקיה הציבורית ". הקבצים הדרושים לפרסום נוצרו. לדוגמה, במקרה של בניית באגים, אמור להיות לך קובץ בנתיב התיקיה "< פרוייקט >\bin\Debug\app.publish\". העתק קבצים אלה ל"כתובת ה- URL של תיקיית ההתקנה "וזה יעבוד כראוי כמו ClickOnce.

פרסום במיקום תיקיה ציבורית (אם היעד הוא תיקיה שיש לך גישה ישירה אליה)

האתר הבא משמש כהפניה לחלק זה.

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

ראשית, פתח את קובץ הפרויקט ( .csproj) בעורך טקסט. זה לא קובץ פתרון.

בפנים נמצא מבנה XML, ואם אתה גולל לתחתית, הוסף את </Project> הקוד הבא לשורה שמעליו. אם זהו תהליך הנחת יסוד של העתקת קובץ, התוכן קבוע, אך החלק של הוא CopyPublishedApplication שרירותי. תשתמש בשם זה מאוחר יותר.

<!-- ここから ClickOnce の発行処理 -->
<Target Name="CopyPublishedApplication">
  <ItemGroup>
    <MySourceFiles Include="$(PublishDir)**\*.*" Exclude="$(PublishDir)$(AssemblyName).exe" />
  </ItemGroup>
  <PropertyGroup>
    <AppricationDir>$(_DeploymentApplicationDir.Substring($(PublishDir.Length)))</AppricationDir>
  </PropertyGroup>
  <Copy SourceFiles="@(MySourceFiles)" DestinationFiles="@(MySourceFiles->'$(PublishUrl)%(RecursiveDir)%(Filename)%(Extension)')" />
</Target>
<!-- ここまで ClickOnce の発行処理 -->

שמור אותו לאחר שהזנת אותו.

לאחר מכן פתח כל קובץ BAT והוסף לפרמטרים msbuild /t:CopyPublishedApplication . CopyPublishedApplication הוא השם שנתתי לך קודם.

ClickOnceDebug מפרסם.bat (דוגמה)

call "C:\Program Files\Microsoft Visual Studio\2022\Community\Common7\Tools\VsDevCmd.bat"
cd %~dp0
msbuild ClickOnceBuildConfiguration.sln /t:Publish /t:CopyPublishedApplication /p:Configuration=Debug /p:PublishUrl="publish\Debug\\" /p:InstallUrl="\\xxxxServer\publish_Debug\\"

בעת הפעלת קובץ ה- BAT, באפשרותך לראות שהקובץ מועתק למיקום התיקיה הציבורית. בשלב זה, אין < שם התוכנית >.exe הקובץ, אך הוא מיותר מכיוון שהוא נכלל במקור בהגדרה.exe.

תוספת

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

פרסום במיקום תיקיה ציבורית (עבור FTP)

לא ניסיתי את זה, אבל אולי תרצה להתייחס לאתרים הבאים.

דברים נוספים שכדאי לזכור