אפשר ל-ClickOnce להתקין תוכניות מרובות שפורסמו מאותו פרוייקט באותה סביבה (.NET Framework Editions בלבד)

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

סביבת בדיקת תפעול

סטודיו חזותי
  • סטודיו חזותי 2022
מסגרת .NET
  • .NET Framework 4.8

סביבות נדרשות

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

בהתחלה

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

אודות ההליך לפרסום עותקים מרובים מאותו פרוייקט בתצורות שונות

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

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

תנאים שבהם ClickOnce מותקן כיישומים נפרדים

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

אני צריך לעשות את זה נראה יישום נפרד, אבל על פי המאמר הפניה, הפרמטרים הבאים לזהות את היישום:

הפניה: (.NET) כאשר אני מפעיל את האפליקציה לאחר הפרסום באמצעות ClickOnce, אני מקבל ש"מזהה המיקום אינו תואם את המנוי"

  • שם היישום
  • אסימון מפתח ציבורי
  • תרבות
  • ארכיטקטורת מעבד (לדוגמה, x86)

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

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

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

נוהל בדיקת תפעול

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

יצירת אישור

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

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

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

יש כפתור "צור אישור בדיקה" בפינה השמאלית התחתונה, אז לחץ עליו.

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

קובץ אישור (.pfx) נוצר עבור הפרוייקט שלך. שם הקובץ שנוצר כאן קבוע אך ניתן לשנותו מאוחר יותר. אגב, התוקף של תעודת הבדיקה שנוצרה כאן הוא שנה אחת. לאחר שנה, יהיה עליך ליצור מחדש אישור חדש.

בצע את אותם שלבים כדי ליצור שלב נוסף.

הפעם, אנו נפרסם ב- Debug build וב- Release build, כך שנשנה את השם ל- clear one.

שינוי אצווה

פתח את קובץ האצווה שיצרת (.bat) בעורך טקסט והוסף את הדברים הבאים לפרמטרים של msbuild:

נדרש תיאור שם פרמטר
ManifestKeyFile שם הקובץ ( .pfx) של האישור. ציין נתיב ביחס לקובץ הפרוייקט או מוחלט ממנו.
ManifestCertificateThumbprint טביעת האגודל של תעודת המניפסט. הערך שיש לשים יכול להיות כל דבר, אבל זה חייב להיות לשים בכל האמצעים.
שם מוצר שם המוצר. הוא הופך לשם התצוגה של תפריט ההתחלה או רשימת התוכניות.
שם המוציא לאור שם חברה ציבורית. הוא הופך לשם התיקיה בעת ארגון תוכניות בתפריט התחלה.

בהתבסס על האמור לעיל, שנה את קובץ התיקון באופן הבא.

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\\" /p:ManifestKeyFile="ClickOnceMultipleInstallDebug.pfx" /p:ManifestCertificateThumbprint="Debug" /p:ProductName="CliclOnce テスト Debug システム" /p:PublisherName="Sorceryforce"

ClickOnceRelease issue.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=Release /p:PublishUrl="publish\Release\\" /p:InstallUrl="\\xxxxServer\publish_Release\\" /p:ManifestKeyFile="ClickOnceMultipleInstallRelease.pfx" /p:ManifestCertificateThumbprint="Release" /p:ProductName="CliclOnce テスト Release システム" /p:PublisherName="Sorceryforce"

ManifestKeyFile כל ערך מציין קובץ אישורים אחר. ManifestCertificateThumbprint הערך של יכול להיות כל דבר, אבל הקפד לכלול אותו כי היישום לא יכול להיות מזוהה כעוד אחד אם אתה לא שם את זה.

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

בעיה

לאחר הקלט, בצע כל קובץ אצווה ופרסם אותו.

אם xxxx.application נמצא בקובץ שפרסמת, פתח אותו בעורך טקסט וודא שיש לוpublicKeyToken ערך אחר.

התקין

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

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

התוכנית הראשונה הותקנה והושקה.

אני אנסה להתקין את השני.

השני הותקן והושק גם הוא.

כמובן, שניהם עובדים בו זמנית.

ProductName מכיוון שהוא צורף, הוא מוצג בנפרד בתפריט ההתחלה.

ניתן גם לראות את שניהם ברשימת האפליקציות.