none
deployment של Managed C++ DLL RRS feed

  • שאלה

  • שלום לכולם,

    האם יש דרך לבצע deployment של managed C++ DLL  שקומפל ב visual 2010 

    מבלי לבצע install  של redistribution 

    במילים אחרות האם אפשר לכלול את הDLL,ד הנחוצים ישר בקימפול ?

    יום ראשון 01 אפריל 2012 12:18

תשובות

  • היי אלון

    חקרתי את זה מעט יותר

    ומה שגיליתי הוא שכאשר מקמפלים managed C++  אי אפשר לקשר סטאטית את ה CRT

    לכן כנראה לפחות לעת עתה להבנתי אין פתרון ברמת הקימפול

    יום שלישי 17 אפריל 2012 07:25

כל התגובות

  • אם מדובר ב-Native DLL אתה יכול לבצע Static Linking (בתפריט Project / Properties/Linker) ל-Runtime library.

      פבל


    Pavel Yosifovich

    יום ראשון 01 אפריל 2012 15:18
  • הי

    בהמשך לתשובה של פבל, עדיין אתה חייב שגרסת הדוט נט שאתה עובד מולה תיהיה מותקנת במחשב היעד.

    אלון.


    אלון פליס http://codevalue.net

    יום ראשון 01 אפריל 2012 19:35
    מנחה דיון
  • מדובר על managed DLL

    הבעיה היא שבכל מחשב אחר שאיונ כולל את ה visual  אני נדרש להתקין את ה redistribution 

    ומזה הייתי רוצה להימנע

    יום שני 02 אפריל 2012 06:37
  • אלון תודה

    את העובדה הזאת אני יודע :-)

    מה שמטריד אותי הוא שה DLL הוא managed המקומפל בvisual 2010  אך משתמש ב MFC  של 2008

    מה שמכריח אותי לכאורה (ואני מקווה שאפשר אחרת ) להתקין בכל מחשב שלא מותקן visual  את גירסת הredistribution  של visual 2008

    יום שני 02 אפריל 2012 06:40
  • הי

    גם אל מול MFC אתה יכול לבצע קישור סטאטי. המשמעות היא שהקוד שלך יגדל אבל לא תיהיה תלוי בהתקנת החבילה של ה redistribution. ז"א נידרש ביצוע לינקינג סטאטי גם ל MFC וגם ל C-Runtime.

    דרך אגב למה אתה מקמפל ב 2010 אל מול MFC 2008 ולא אל מול 2010?

    אלון.


    אלון פליס http://codevalue.net

    יום שני 02 אפריל 2012 22:45
    מנחה דיון
  • היי אלון

    to make a long story short 

    חבילת התוכנה שלנו מורכבת משילוב של dll's  חלקם ב C++ וחלקם ב C#

    הdll המדובר היה בעבר native  אבל משיקולים שונים הוחלט להסבו ל managed 

    כאשר מסבים ב visual 2010  ה .Net framework  שנקבע הוא 4.0 (ברירת מחדל)

    מכיוון שהדרישה היא שה framework  יהיה 2.0 יש צורך בהתקנה של visual 2008  והסבה ל framework הנכון.

    הבעיה היא שכעת אני צריך לגרור אחרי לכל מקום שבו אני רוצה להריץ את הdll  את הredistribution 

    אשמח לדעת איך אפשר ללנקג' את ה mfc הנכון

    תודה

     ישראל

    יום שלישי 03 אפריל 2012 12:46
  • הי

    לא לחלוטין הבנתי את הבלאגן עם הגרסאות, אבל בכל מקרה VS 2010 מאפשר לקמפל ל 2008 (VC9) כולל קישור סטאטי ל MFC ע"י קביעת השימוש בכלי הקימפול של VC9:

    דרך אגב אתה חייב ש Visual Stuidio 2008 או ה SDK על כלי הפיתוח הרלוונטים (קומפילר, ספריות וכו') יהיה מותקן למרות שאתה מקמפל ב 2010 .

    אלון.


    אלון פליס http://codevalue.net

    יום שלישי 03 אפריל 2012 21:22
    מנחה דיון
  • היי אלון

    קודם כל תודה על העזרה שאתה מנסה להושיט

    רק לשם ידיעה אני מציין שוב (ואולי משהו לא ברור לי)

    אני למעשה כבר לאחר השלב שציינת (משמע הsettings מכוונים כפי שציינת)

    רק שמשום מה (כנראה שזה מובנה כך ) בכל deployment  של ה DLL הנ"ל במחשב אחר ללא visual 

    אני נזקק להתקין גם את ה redistribution  של 2008

    יום חמישי 05 אפריל 2012 06:00
  • הי

    אתה בטוח שאתה מקשר סטאטי את כל הפרויקט שלך עם ה C Runtime ועם ה MFC Library?

    אלון.


    אלון פליס http://codevalue.net

    יום רביעי 11 אפריל 2012 07:09
    מנחה דיון
  • הי ישראל, האם יש עדכון?

    תודה,

    צוות הפורומים


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

    יום שני 16 אפריל 2012 10:52
  • לצערי לא

    כרגע אני תקוע עם העובדה שבכל מחשב שלא מותקן בו visual 2008  אני צריך להתקין את ה redistribution

    יום שני 16 אפריל 2012 10:53
  • אם כך אז תגיב בבקשה לשאלתו האחרונה של אלון על מנת שנוכל להמשיך לנסות לסייע.


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

    יום שני 16 אפריל 2012 10:55
  • אלון

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

    אך זה לא עוזר

    אני עדיין נזקק להתקנה.

    לדעתי זה קשור לעובדה ש-dll אינו MFC טהור אלא קשור לעובדה שזהו manged C++

    יום שני 16 אפריל 2012 10:58
  • הי

    האם גם הקישור לספרית ה C-Runtime הוא סטאטי? האם אתה יכול לראות את המודולים הנטענים לתהליך שלך ולהגיד איזה DLL שמגיע מ ה Redist נטען לתהליך? השלב הבא יהיה להבין מי טוען אותו.

    אלון.


    אלון פליס http://codevalue.net

    יום שני 16 אפריל 2012 19:07
    מנחה דיון
  • ממה שאני רואה ב depends  יש כמה dll's שנטענים

    והם מקושרים לעוד dll's

    להלן הרשימה

    MFC90U.DLL

    MSVCM90.DLL

    MSVCP90.DLL

    MSVCR90.DLL

    MSJAVA.DLL

    MSCOREE.DLL

     מה שמוזר הוא שגם אם אני מביא את הdll ליד ה dll שלי ומריץ depends אני עדיין מקבל בעיות (אבל לא ברור מאיפה ) רק בהרצה של ה redistribution  זה נפתר

    יום שלישי 17 אפריל 2012 06:26
  • מה הכוונה קישור לספריית c-runtime  סטאטי ?

    יום שלישי 17 אפריל 2012 06:27
  • היי אלון

    חקרתי את זה מעט יותר

    ומה שגיליתי הוא שכאשר מקמפלים managed C++  אי אפשר לקשר סטאטית את ה CRT

    לכן כנראה לפחות לעת עתה להבנתי אין פתרון ברמת הקימפול

    יום שלישי 17 אפריל 2012 07:25