لعمل برنامج يعمل من أي مسار داخل الجهاز تميدا لعمل ملف setup .. قمت داخل ملف app.config بكتابة مسار قاعدة البيانات database.mdf تحت المسار
وحسب فهمي أن |DataDirectory| تعني المسار الحالي .. أي نفس المسار الذي يوجد فيه الملف التنفيذي .. وعمل البرنامج بشكل طبيعي عندما وضعت فولدر البرنامج بأكمله على سطح المكتب ..
لكن عندما أنقل الفولدر بكل محتوياته إلى مكان آخر .. ((driver D)) مثلا .. لا يقرأ قاعدة البيانات مع أنها موجودة داخل الفولدر ولم يتغير شئ ..
أريد شرح لآلية عمل |DataDirectory| .. وكيف أستطيع كتابة مسار يجعل البرنامج يقرأ من داخل قاعدة البيانات مهما كان مسار فولدر البرنامج .. علما بأن البرنامج يعمل بشكل جيد في أي جهاز عند وضعه على سطح المكتب فقط ..
المسارات الكاملة ..
كود :
|DataDirectory|\database.mdf
وحسب فهمي أن |DataDirectory| تعني المسار الحالي .. أي نفس المسار الذي يوجد فيه الملف التنفيذي .. وعمل البرنامج بشكل طبيعي عندما وضعت فولدر البرنامج بأكمله على سطح المكتب ..
لكن عندما أنقل الفولدر بكل محتوياته إلى مكان آخر .. ((driver D)) مثلا .. لا يقرأ قاعدة البيانات مع أنها موجودة داخل الفولدر ولم يتغير شئ ..
أريد شرح لآلية عمل |DataDirectory| .. وكيف أستطيع كتابة مسار يجعل البرنامج يقرأ من داخل قاعدة البيانات مهما كان مسار فولدر البرنامج .. علما بأن البرنامج يعمل بشكل جيد في أي جهاز عند وضعه على سطح المكتب فقط ..
المسارات الكاملة ..
كود :
<connectionStrings>
<add name="database.My.MySettings.databaseConnectionString" connectionString="Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\database.mdf;Integrated Security=True;Connect Timeout=30;User Instance=False" providerName="System.Data.SqlClient"/>
</connectionStrings>
كود :
<appSettings>
<add key="database" value="Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\databasels.mdf;Integrated Security=True;Connect Timeout=30;User Instance=False"/>
<add key="LogFileName" value="database.txt"/>
<add key="LogPath" value="C:\cLogsdatabase\"/>
<add key="ClientSettingsProvider.ServiceUri" value=""/>
</appSettings>