سؤال

أثناء استخدام طرف ثالث ، كنت أحصل على الاستثناء التالي:

يجب تحديد exepath عند عدم الركض داخل exe بذاتها

مع التتبع التالي

System.Configuration.ConfigurationManager.openexeconfigurationImpl (configurationFileMap filemap ، ismachine boolean ، configurationuserlevel ، usepath).

السبب في أنني وجدت أنه كان يبحث عن app.config وقدمت التفاصيل في web.config. سؤالي هو: لماذا يتم تمييز System.Configuration بين web.config و app.config؟ أي أفكار؟

هل كانت مفيدة؟

المحلول

التنفيذيون:

يمكن لعدة. NET Executables العيش في نفس الدليل. نظرًا لأنه لا يمكن أن يكون هناك ملفان لهما نفس الاسم في نفس الدليل ، يجب أن تستخدم التطبيقات أسماء مختلفة لملفات التكوين الرئيسية الخاصة بها. ال applicationName.exe.config المخطط يحل هذا.

تطبيقات / مواقع الويب:

يتم تجميع تطبيقات الويب .NET إلى DLLs ، وعادة ما يتم تجميع مواقع الويب في الوقت المناسب. وبالتالي ، لا توجد "نقطة دخول رئيسية" في هذه الأنواع من المشاريع. من الممكن إنشاء مشروع ويب حيث يتم تجميع كل صفحة إلى التجميع الخاص به. أي واحد هو التجمع الرئيسي؟ ما هي التجميع التي يجب أن نسمي ملف التكوين بعد؟

لحسن الحظ ، يمكن استضافة مشروع ويب واحد فقط من دليل واحد ، لذلك سيعيش هنا ملف تكوين رئيسي واحد فقط. يسمح هذا باختيار اسم ملف التكوين الرئيسي بواسطة الاتفاقية ، ويحدث اسم الملف هذا web.config.

نصائح أخرى

web.config هو لموقع الويب الخاص بك وتطبيقات الويب فقط. يبقى ثابتًا ، أي لا يغير اسمه ؛ يطلق عليه دائما web.config.

app.config هو للتطبيقات غير وايب - خدمات WinForms و WPF و NT وما إلى ذلك. سيتم إعادة تسمية هذا إلى YourApplicationName.exe.config عندما تقوم ببناء مشروعك. لن تجد أبدًا app.config حسب هذا الاسم في دليل التطبيق (أو إذا قمت بذلك ، فلن يتم استخدامه).

لماذا تختار Microsoft استخدام نوعين مختلفين من الأسماء - لا أعرف - اسأل Microsoft.

لذلك عليك فقط معرفة ما تتعامل معه وتقديم المعلومات في المكان الصحيح.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top