שינוי הגדרות 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)
לא ניסיתי את זה, אבל אולי תרצה להתייחס לאתרים הבאים.
דברים נוספים שכדאי לזכור
- גם אם תפצל את ההנפקה של ClickOnce לחלקים מרובים, הישות תטופל כאותה תוכנית, כך לדוגמה, לא תוכל להתקין תוכנית שפורסמה ב- Debug ותוכנית שפורסמה עם Release באותה סביבה. על מנת להתקין, יש צורך לנקוט באמצעים כגון שינוי השם של כל הרכבה. אנא עיין באתר הבא כדי לראות מה מזוהה על ידו.