יצירת קובץ exe יחיד לאחר הקימפול בויזו'אל סטודיו
-
כיצד אני יכול לכלול את כל הקבצים שנוצרים לי לאחר הקימפול בתוך קובץ הexe עצמו?
ובכללי כיצד אני יכול להטמיע קבצים בתוך קובץ הexe של התוכנה עצמה?
לדוג' אני רוצה להשתמש בפונט מסויים (חינמי כמובן) ואני רוצה לוודא שהוא יותקן על מחשב המשתמש כיצד אוכל לכלול את קובץ הפונט בתוך היישום?אני מצרף פרויקט שיצרתי לדוגמה, אשמח מאוד (להפניה או) להסבר ברור, כי כל מה שמצאתי בגוגל או ב'בארד' רק סיבך אותי ולא עבד..
-
א. התמונה שצירפת, הקובץ היחיד שנדרש הוא הEXE כך שזה קובץ יחיד
ב. הבעיה מתחילה בשימוש בספריות של דוטנט, שמה יש אפשרות להטמיע הכל בקובץ בודד
ג. קבצים משלך כמו תמונות או פונטים אפשר להטמיע בקלות, על בחירה בContent בהגדרה של Build Action במאפייני הקובץ בSolution Explorer.
השאלה היא להשתמש בהם אחרי זה, זה מצריך קוד (Application.GetContentStream) וזה לא תמיד משתלם. -
@dovid באמת עיקר השאלה שלי היא לענין הספריות מהנוגט, שבד"כ אני רוצה לשלוח קובץ בודד..
איך באמת אפשר להטמיע ספריות בתוך הקובץ עצמו?אני מתכוון לקבצים כמו "Newtonsoft.Json.dll"..
בכל אופן, כשאני מעתיק את הקובץ exe לבדו מהפרויקט שבתמונה לעיל זה לא עובד (זה הסוג הראשון בשאלה השניה כאן באמת בסוג הראשון מספיק הקובץ עצמו כשאין ספריות)
-
@מוטי-מן כתב ביצירת קובץ exe יחיד לאחר הקימפול בויזו'אל סטודיו:
בכל אופן, כשאני מעתיק את הקובץ exe לבדו מהפרויקט שבתמונה לעיל זה לא עובד
אתה צריך גם את ה dll עם אותו שם, ככה זה עובד ב NET., (הקוד שלך נמצא רק ב dll ולא ב exe) אם אתה רוצה לפרסם כקובץ אחד, זה אפשרי ברוב המקרים (אם אין תלות לא מנוהלת) על ידי המאפיין
PublishSingleFile
, בשורת הפקודה זה משהו כזהdotnet publish .. /p:PublishSingleFile=true
ויש גם אפשרות בממשק של ויז'ואל סטודיו. -
@מוטי-מן
תבדוק בnuget את Costura.Fody בעבר השתמשתי איתו כעת לא בדקתי מספיק. אבל הוא אמור ליצור תוכנה ניידת.
אחרי ההתקנה שלו יש ללחוץ על build ואז אתה מקבל exe מוכן להפצה בתיקיית הbin > debug
שים לב שהוא עלול לדפוק את האפשרות של debug מתוך vs
שים לב - אנטי וירוסים לא כל כך אוהבים תוכנות מסוג כזה -
@קומפיונט כתב ביצירת קובץ exe יחיד לאחר הקימפול בויזו'אל סטודיו:
אם אתה רוצה לפרסם כקובץ אחד, זה אפשרי ברוב המקרים (אם אין תלות לא מנוהלת) על ידי המאפיין PublishSingleFile, בשורת הפקודה זה משהו כזה dotnet publish .. /p:PublishSingleFile=true ויש גם אפשרות בממשק של ויז'ואל סטודיו.
איך אני עושה את זה? לא מצאתי דבר כזה בממשק הגרפי, ואני לא יודע לעבוד עם השורת פקודה בויז'ואל סטודיו
-
@pcinfogmach כתב ביצירת קובץ exe יחיד לאחר הקימפול בויזו'אל סטודיו:
תבדוק בnuget את Costura.Fody בעבר השתמשתי איתו כעת לא בדקתי מספיק. אבל הוא אמור ליצור תוכנה ניידת.
אחרי ההתקנה שלו יש ללחוץ על build ואז אתה מקבל exe מוכן להפצה בתיקיית הbin > debugהתקנתי את זה, איך אני מפעיל אותו בפועל? כי כשאני עושה ctrl+B לא השתנה כלום..
-
@מוטי-מן כתב ביצירת קובץ exe יחיד לאחר הקימפול בויזו'אל סטודיו:
@pcinfogmach כתב ביצירת קובץ exe יחיד לאחר הקימפול בויזו'אל סטודיו:
תבדוק בnuget את Costura.Fody בעבר השתמשתי איתו כעת לא בדקתי מספיק. אבל הוא אמור ליצור תוכנה ניידת.
אחרי ההתקנה שלו יש ללחוץ על build ואז אתה מקבל exe מוכן להפצה בתיקיית הbin > debugהתקנתי את זה, איך אני מפעיל אותו בפועל? כי כשאני עושה ctrl+B לא השתנה כלום..
שים לב שהEXE שנוצר גדול בהרבה ממה שהיה קודם.
כעת נסה להריץ אותו בלי שום קובץ מסביבו.
אם לא עובד, כנראה אתה לא בnet framework. -
@מוטי-מן כתב ביצירת קובץ exe יחיד לאחר הקימפול בויזו'אל סטודיו:
@קומפיונט כתב ביצירת קובץ exe יחיד לאחר הקימפול בויזו'אל סטודיו:
אם אתה רוצה לפרסם כקובץ אחד, זה אפשרי ברוב המקרים (אם אין תלות לא מנוהלת) על ידי המאפיין PublishSingleFile, בשורת הפקודה זה משהו כזה dotnet publish .. /p:PublishSingleFile=true ויש גם אפשרות בממשק של ויז'ואל סטודיו.
איך אני עושה את זה? לא מצאתי דבר כזה בממשק הגרפי, ואני לא יודע לעבוד עם השורת פקודה בויז'ואל סטודיו
זה נמצא כנראה בפבלוש.
תעשה קליק ימני על הפרוייקט, ובחר בPublish...
יהיה לך אשף וכנראה תהיה שמה אפשרות כזאת. -
שאלת 2 שאלות בשאלה אחת, לגבי ה- publish ענו לך לעיל, לגבי צירוף קובץ ראה לדוגמה:
https://stackoverflow.com/questions/4111160/resources-where-to-put-them-and-how-to-reference-them-in-c-sharp
יש לך אפשרות לשמור קובץ שאת מאחסן ב resources