none
DataProvider Error RRS feed

  • שאלה

  • שלום לכולם

    לאחר כתיבת אפליקציה ב WPF אשר משתמשת ב- entity framework וב- SQL Compact3.5 כאשר אני מנסה להתקין אותה על מחשב אחר אני מקבל את ההודעה:
    system.argumentException: unable to find the requested .Net Framework Data Provider. It may not be installed. at system.data.common.DbProviderFactories.GetFactory(string providerInvariantName)

    על מחשב הפיתוח הכל עובד תקין.
    האפליקציה בנויה עם .Net 4.0

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

    מישהו נתקל בזה?
    למישהו יש רעיון איך לפתור את זה?

    יום שלישי 06 דצמבר 2011 12:30

תשובות

  • בוקר טוב,

     

    ראית את הלינק הזה?

    http://blogs.msdn.com/b/spike/archive/2008/12/19/unable-to-find-the-requested-net-framework-data-provider-it-may-not-be-installed.aspx

     

     


    Best Regards,

    Itai Binyamin, MVP
    SQL Server Group Manager
    Veracity Group

    www.Veracity-Group.com
    www.ItaiBinyamin.Blogspot.com
    • סומן כתשובה על-ידי Yoav Eyal יום רביעי 07 דצמבר 2011 14:07
    יום רביעי 07 דצמבר 2011 06:06
  • יואב בוקר טוב

    הודעת השגיאה דיי ברורה ומדברת על בעיה במציאת הפרוביידר המתאים בסביבת ההרצה שלך (סביבת הדוטנט).

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

    - הפרוביידרים הנפוצים של מייקרוסופט כאשר הם מותקנים הם מוגדרים בברירת המחדל בקובץ machine.config ולכן אין צורך להוסיף את ההגדרה ברמת האפליקציה אבל הפרוביידרים של SQLite לא נמצאים שם ולכן כמו שנכתב בקישור יש להוסיף את ההפניה אליהם ברמת האפליקציה (או ב machine.config ואז לא תצתרך בכל אפליקציה להכניס את זה מחדש).

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

    <add name=”connectionString” connectionString=”Data Source=.;Initial Catalog=db_products;Integrated Security=True” providerName=”System.Data.SqlClient” />

    ** עם כל זה, אם אני מבין נכון אתה לוקח את האפליקציה ממחשב הפיתוח למחשב שונה ולכן נפוץ מאוד התופעה שבכלל סביבת ההרצה במחשב הלקוח אינה תואמת (למשל מנסים להריץ אפליקציה בדוטנט 4 כשאצלו מותקן רק דוטנט 3). אני מציע לבדוק את המצב הזה ולבדוק שאצל הלקוח מותקנים כל הפרובידרים איתם אתה עובד וכמובן סביבת הדוטנט זהה.


    signature
    • סומן כתשובה על-ידי Yoav Eyal יום רביעי 07 דצמבר 2011 14:06
    יום רביעי 07 דצמבר 2011 07:02
    מנחה דיון

כל התגובות

  • בוקר טוב,

     

    ראית את הלינק הזה?

    http://blogs.msdn.com/b/spike/archive/2008/12/19/unable-to-find-the-requested-net-framework-data-provider-it-may-not-be-installed.aspx

     

     


    Best Regards,

    Itai Binyamin, MVP
    SQL Server Group Manager
    Veracity Group

    www.Veracity-Group.com
    www.ItaiBinyamin.Blogspot.com
    • סומן כתשובה על-ידי Yoav Eyal יום רביעי 07 דצמבר 2011 14:07
    יום רביעי 07 דצמבר 2011 06:06
  • יואב בוקר טוב

    הודעת השגיאה דיי ברורה ומדברת על בעיה במציאת הפרוביידר המתאים בסביבת ההרצה שלך (סביבת הדוטנט).

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

    - הפרוביידרים הנפוצים של מייקרוסופט כאשר הם מותקנים הם מוגדרים בברירת המחדל בקובץ machine.config ולכן אין צורך להוסיף את ההגדרה ברמת האפליקציה אבל הפרוביידרים של SQLite לא נמצאים שם ולכן כמו שנכתב בקישור יש להוסיף את ההפניה אליהם ברמת האפליקציה (או ב machine.config ואז לא תצתרך בכל אפליקציה להכניס את זה מחדש).

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

    <add name=”connectionString” connectionString=”Data Source=.;Initial Catalog=db_products;Integrated Security=True” providerName=”System.Data.SqlClient” />

    ** עם כל זה, אם אני מבין נכון אתה לוקח את האפליקציה ממחשב הפיתוח למחשב שונה ולכן נפוץ מאוד התופעה שבכלל סביבת ההרצה במחשב הלקוח אינה תואמת (למשל מנסים להריץ אפליקציה בדוטנט 4 כשאצלו מותקן רק דוטנט 3). אני מציע לבדוק את המצב הזה ולבדוק שאצל הלקוח מותקנים כל הפרובידרים איתם אתה עובד וכמובן סביבת הדוטנט זהה.


    signature
    • סומן כתשובה על-ידי Yoav Eyal יום רביעי 07 דצמבר 2011 14:06
    יום רביעי 07 דצמבר 2011 07:02
    מנחה דיון
  • תודה רבה על התשובות המפורטות.

    הצלתם אותי :)

    יום רביעי 07 דצמבר 2011 14:11