عندما تقوم بتعيين MvcBuildViews
إلى true
في ملف .csproj
الخاص بك لتجعل الـ views يتم تجميعها أثناء البناء، يبدو أنك تواجه مشكلة مع المسار الذي تم تعيينه للتجميع. الخطأ الذي تحصل عليه '/temp' is not a valid IIS application
يعني أن IIS لا يعتبر ‘/temp’ تطبيقًا صالحًا.
الحل الأمثل هو تعيين مسار فعلي للتجميع بدلاً من مجرد استخدام ‘temp’. يمكنك تحديد مسار ثابت لتجميع الـ views على سبيل المثال:
xml<Target Name="MvcBuildViews" AfterTargets="AfterBuild" Condition="'$(MvcBuildViews)'=='true'">
<AspNetCompiler VirtualPath="temp" PhysicalPath="$(WebProjectOutputDir)\Views" />
Target>
تأكد من أن المسار الفعلي المُحدد $(WebProjectOutputDir)\Views
يتوافق مع مسار المجلد الذي تريد تجميع الـ views فيه. قد تحتاج أيضًا إلى تأكيد أن المسار المحدد موجود وقابل للوصول من قبل IIS.
قد تحتاج أيضًا إلى إعادة تشغيل IIS بعد تغيير الإعدادات لضمان تحديثها بشكل صحيح.
المزيد من المعلومات
عندما تعيين MvcBuildViews
إلى true
في ملف .csproj
الخاص بك، فإن هذا يؤدي إلى تجميع ملفات الـ views في مشروعك أثناء عملية البناء. تحديدًا، عندما يتم تشغيل عملية البناء، يتم تجميع ملفات الـ views إلى ملفات .dll في مجلد مؤقت.
الخطأ الذي تحصل عليه '/temp' is not a valid IIS application
يشير إلى أن هناك مشكلة في الطريقة التي تم بها تحديد المسار الظاهري لتجميع الـ views. في الشفرة التي قدمتها، يبدو أنك تستخدم مساراً ثابتاً “temp” كمسار ظاهري للتجميع، وهذا ليس مسارًا صحيحًا لتجميع الـ views.
لحل هذه المشكلة، يمكنك تحديد مسار ظاهري صحيح لتجميع الـ views. على سبيل المثال، يمكنك استخدام المسار الظاهري “$(WebProjectOutputDir)\Views” الذي يشير إلى مجلد Views في مشروعك، حيث يتم تجميع ملفات الـ views إليه. تأكد من أن هذا المسار موجود وقابل للوصول من قبل IIS.
xml<Target Name="MvcBuildViews" AfterTargets="AfterBuild" Condition="'$(MvcBuildViews)'=='true'">
<AspNetCompiler VirtualPath="temp" PhysicalPath="$(WebProjectOutputDir)\Views" />
Target>
بعد تحديد المسار الظاهري الصحيح، يجب عليك إعادة بناء مشروعك لتطبيق التغييرات، ويمكنك بعد ذلك تشغيل المشروع ويجب أن يتم تجميع الـ views بنجاح.