המלצה | פרוייקט כלי קודש לוורד - ארגז כלים לעורך התורני
-
@יאיר-דניאל
מה בעצם קורה - זה לא מופיע בסרגל הכלים?@pcinfogmach הוא מופיע בתוספות קום - כלא מסומן, וגם אם אני מסמן אותו ולוחץ אישור - כשאני פותח שוב את תוספות קום - הוא לא מסומן כפעיל.
התוכנה כן מותקנת - "כתבי הקודש.EXE" עובד מצויין.
כשאני מנסה להפעיל מהאפפ דאטא את הקובץ VSTO - זה מה שקורה:
קוד שגיאה בספויילר:שם: KleiKodesh
מאת: file:///C:/Users/ZMB/AppData/Local/KleiKodesh/KleiKodesh.vsto************** טקסט חריגה**************
System.Deployment.Application.DeploymentDownloadException: הורדת file:///C:/Users/ZMB/AppData/Local/KleiKodesh/KleiKodesh_Main.png לא הצליחה. ---> System.Net.WebException: לא היתה אפשרות לאתר את הקובץ 'C:\Users\ZMB\AppData\Local\KleiKodesh\KleiKodesh_Main.png'. ---> System.Net.WebException: לא היתה אפשרות לאתר את הקובץ 'C:\Users\ZMB\AppData\Local\KleiKodesh\KleiKodesh_Main.png'. ---> System.IO.FileNotFoundException: לא היתה אפשרות לאתר את הקובץ 'C:\Users\ZMB\AppData\Local\KleiKodesh\KleiKodesh_Main.png'.
ב- System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)
ב- System.IO.FileStream.Init(String path, FileMode mode, FileAccess access, Int32 rights, Boolean useRights, FileShare share, Int32 bufferSize, FileOptions options, SECURITY_ATTRIBUTES secAttrs, String msgPath, Boolean bFromProxy, Boolean useLongPath, Boolean checkHost)
ב- System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize, FileOptions options, String msgPath, Boolean bFromProxy)
ב- System.Net.FileWebStream..ctor(FileWebRequest request, String path, FileMode mode, FileAccess access, FileShare sharing, Int32 length, Boolean async)
ב- System.Net.FileWebResponse..ctor(FileWebRequest request, Uri uri, FileAccess access, Boolean asyncHint)
--- סוף רכיב מעקב אחר מחסנית של מצב חריג פנימי ---
ב- System.Net.FileWebResponse..ctor(FileWebRequest request, Uri uri, FileAccess access, Boolean asyncHint)
ב- System.Net.FileWebRequest.GetResponseCallback(Object state)
--- סוף רכיב מעקב אחר מחסנית של מצב חריג פנימי ---
ב- System.Net.FileWebRequest.EndGetResponse(IAsyncResult asyncResult)
ב- System.Deployment.Application.SystemNetDownloader.DownloadSingleFile(DownloadQueueItem next)
--- סוף רכיב מעקב אחר מחסנית של מצב חריג פנימי ---
ב- Microsoft.VisualStudio.Tools.Applications.Deployment.ClickOnceAddInDeploymentManager.DownloadAddIn(TimeSpan timeout)
ב- Microsoft.VisualStudio.Tools.Applications.Deployment.ClickOnceAddInDeploymentManager.InstallAddIn()ג'מיני הסביר לי שהוא מחפש איזה קובץ בשם "KleiKodesh_Main.png" הוספתי כזה קובץ ידנית, ואז עולה השגיאה הבאה:

קוד שגיאה בספויילר:שם: KleiKodesh
מאת: file:///C:/Users/ZMB/AppData/Local/KleiKodesh/KleiKodesh.vsto************** טקסט חריגה**************
System.Deployment.Application.InvalidDeploymentException: הפניה במניפסט אינה תואמת לזהות של ההרכבה היורדת כתבי הקודש.exe.
ב- Microsoft.VisualStudio.Tools.Applications.Deployment.ClickOnceAddInDeploymentManager.DownloadAddIn(TimeSpan timeout)
ב- Microsoft.VisualStudio.Tools.Applications.Deployment.ClickOnceAddInDeploymentManager.InstallAddIn()זה מה שג'מיני טען = בספויילר
התעלומה נפתרת בזכות מה שכתבת בצילום המסך: ציינת שהוספת את קובץ התמונה החסר באופן ידני לתיקייה.
בטכנולוגיית ClickOnce (שעליה מבוססות הרחבות VSTO לוורד), יש מנגנון אבטחה מחמיר. כל הקבצים שמרכיבים את ההתקנה רשומים בקובץ "מניפסט" (Manifest) יחד עם החתימות הדיגיטליות והגיבובים (Hashes) המדויקים שלהם.
ברגע שאתה מכניס או משנה קובץ באופן ידני בתיקיית היעד ב-AppData, המערכת מזהה באופן אוטומטי שמבנה הקבצים שם כבר לא תואם למה שהוצהר במקור בחתימת ההתקנה. כתוצאה מכך היא חוסמת את ההפעלה מטעמי אבטחה וזורקת את השגיאה שקיבלת (InvalidDeploymentException).
בקיצור: אי אפשר לעקוף שגיאת קובץ חסר ב-VSTO על ידי הדבקה ידנית שלו לתיקיית המטמון של ההתקנה.
כדי לפתור את זה באמת, יש לבצע את השלבים הבאים:
ניקוי מוחלט: מחק את הקובץ שהוספת ידנית. למעשה, הדרך הבטוחה ביותר כעת היא להסיר את ההרחבה לגמרי דרך הגדרות הווינדוס, ולנקות את המטמון דרך הפקודה rundll32 dfshim CleanOnlineAppCache.
תיקון מצד המפתח: מי שמתחזק את קוד המקור חייב להוסיף את קובץ התמונה החסר לתוך הפרויקט עצמו ב-Visual Studio, לוודא שהמאפיין Build Action שלו מוגדר נכון (למשל כ-Content), ולבצע Publish לגרסה חדשה לגמרי.
רק התקנה מסודרת דרך קובץ Setup רשמי ומעודכן שכולל את קובץ התמונה בתוך המניפסט תעבוד.
-
@pcinfogmach הוא מופיע בתוספות קום - כלא מסומן, וגם אם אני מסמן אותו ולוחץ אישור - כשאני פותח שוב את תוספות קום - הוא לא מסומן כפעיל.
התוכנה כן מותקנת - "כתבי הקודש.EXE" עובד מצויין.
כשאני מנסה להפעיל מהאפפ דאטא את הקובץ VSTO - זה מה שקורה:
קוד שגיאה בספויילר:שם: KleiKodesh
מאת: file:///C:/Users/ZMB/AppData/Local/KleiKodesh/KleiKodesh.vsto************** טקסט חריגה**************
System.Deployment.Application.DeploymentDownloadException: הורדת file:///C:/Users/ZMB/AppData/Local/KleiKodesh/KleiKodesh_Main.png לא הצליחה. ---> System.Net.WebException: לא היתה אפשרות לאתר את הקובץ 'C:\Users\ZMB\AppData\Local\KleiKodesh\KleiKodesh_Main.png'. ---> System.Net.WebException: לא היתה אפשרות לאתר את הקובץ 'C:\Users\ZMB\AppData\Local\KleiKodesh\KleiKodesh_Main.png'. ---> System.IO.FileNotFoundException: לא היתה אפשרות לאתר את הקובץ 'C:\Users\ZMB\AppData\Local\KleiKodesh\KleiKodesh_Main.png'.
ב- System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)
ב- System.IO.FileStream.Init(String path, FileMode mode, FileAccess access, Int32 rights, Boolean useRights, FileShare share, Int32 bufferSize, FileOptions options, SECURITY_ATTRIBUTES secAttrs, String msgPath, Boolean bFromProxy, Boolean useLongPath, Boolean checkHost)
ב- System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize, FileOptions options, String msgPath, Boolean bFromProxy)
ב- System.Net.FileWebStream..ctor(FileWebRequest request, String path, FileMode mode, FileAccess access, FileShare sharing, Int32 length, Boolean async)
ב- System.Net.FileWebResponse..ctor(FileWebRequest request, Uri uri, FileAccess access, Boolean asyncHint)
--- סוף רכיב מעקב אחר מחסנית של מצב חריג פנימי ---
ב- System.Net.FileWebResponse..ctor(FileWebRequest request, Uri uri, FileAccess access, Boolean asyncHint)
ב- System.Net.FileWebRequest.GetResponseCallback(Object state)
--- סוף רכיב מעקב אחר מחסנית של מצב חריג פנימי ---
ב- System.Net.FileWebRequest.EndGetResponse(IAsyncResult asyncResult)
ב- System.Deployment.Application.SystemNetDownloader.DownloadSingleFile(DownloadQueueItem next)
--- סוף רכיב מעקב אחר מחסנית של מצב חריג פנימי ---
ב- Microsoft.VisualStudio.Tools.Applications.Deployment.ClickOnceAddInDeploymentManager.DownloadAddIn(TimeSpan timeout)
ב- Microsoft.VisualStudio.Tools.Applications.Deployment.ClickOnceAddInDeploymentManager.InstallAddIn()ג'מיני הסביר לי שהוא מחפש איזה קובץ בשם "KleiKodesh_Main.png" הוספתי כזה קובץ ידנית, ואז עולה השגיאה הבאה:

קוד שגיאה בספויילר:שם: KleiKodesh
מאת: file:///C:/Users/ZMB/AppData/Local/KleiKodesh/KleiKodesh.vsto************** טקסט חריגה**************
System.Deployment.Application.InvalidDeploymentException: הפניה במניפסט אינה תואמת לזהות של ההרכבה היורדת כתבי הקודש.exe.
ב- Microsoft.VisualStudio.Tools.Applications.Deployment.ClickOnceAddInDeploymentManager.DownloadAddIn(TimeSpan timeout)
ב- Microsoft.VisualStudio.Tools.Applications.Deployment.ClickOnceAddInDeploymentManager.InstallAddIn()זה מה שג'מיני טען = בספויילר
התעלומה נפתרת בזכות מה שכתבת בצילום המסך: ציינת שהוספת את קובץ התמונה החסר באופן ידני לתיקייה.
בטכנולוגיית ClickOnce (שעליה מבוססות הרחבות VSTO לוורד), יש מנגנון אבטחה מחמיר. כל הקבצים שמרכיבים את ההתקנה רשומים בקובץ "מניפסט" (Manifest) יחד עם החתימות הדיגיטליות והגיבובים (Hashes) המדויקים שלהם.
ברגע שאתה מכניס או משנה קובץ באופן ידני בתיקיית היעד ב-AppData, המערכת מזהה באופן אוטומטי שמבנה הקבצים שם כבר לא תואם למה שהוצהר במקור בחתימת ההתקנה. כתוצאה מכך היא חוסמת את ההפעלה מטעמי אבטחה וזורקת את השגיאה שקיבלת (InvalidDeploymentException).
בקיצור: אי אפשר לעקוף שגיאת קובץ חסר ב-VSTO על ידי הדבקה ידנית שלו לתיקיית המטמון של ההתקנה.
כדי לפתור את זה באמת, יש לבצע את השלבים הבאים:
ניקוי מוחלט: מחק את הקובץ שהוספת ידנית. למעשה, הדרך הבטוחה ביותר כעת היא להסיר את ההרחבה לגמרי דרך הגדרות הווינדוס, ולנקות את המטמון דרך הפקודה rundll32 dfshim CleanOnlineAppCache.
תיקון מצד המפתח: מי שמתחזק את קוד המקור חייב להוסיף את קובץ התמונה החסר לתוך הפרויקט עצמו ב-Visual Studio, לוודא שהמאפיין Build Action שלו מוגדר נכון (למשל כ-Content), ולבצע Publish לגרסה חדשה לגמרי.
רק התקנה מסודרת דרך קובץ Setup רשמי ומעודכן שכולל את קובץ התמונה בתוך המניפסט תעבוד.
@יאיר-דניאל להריץ תקיון דרך המתקין לא עזר?
אחרי שאתה מסיר את התוכנה - האם עדיין רואים את זה בתוספות קום?
שלום! נראה שהשיחה הזו מעניינת אותך, אבל עדיין אין לך חשבון.
נמאס לכם לגלול בין אותם הפוסטים בכל ביקור? כשנרשמים לחשבון, תמיד תחזרו בדיוק למקום שבו הייתם קודם, ותוכלו לבחור לקבל התראות על תגובות חדשות (בין אם במייל, ובין אם בהתראת פוש). תוכלו גם לשמור סימניות ולפרגן ב-upvote לפוסטים כדי להביע הערכה לחברי קהילה אחרים.
בעזרת התרומה שלך, הפוסט הזה יכול להיות אפילו טוב יותר 💗
הרשמה התחברות