- زمانیکه پوشههای پروژهها را جابجا میکنید، باید تمام فایلهای csproj آنها را باز کنید و سپس مسیرهای HintPath بستههای نیوگت را اصلاح کنید:
<HintPath>..\..\..\packages\T4MVCExtensions.3.15.0\lib\net40\T4MVCExtensions.dll</HintPath>
اگر اینکار رخ ندهد، عملا کار بازیابی بستهها پاسخ نخواهد داد چون HintPathهای موجود به چند سطح بالاتر اشاره نمیکنند:
<HintPath>..\packages\EntityFramework.6.1.3\lib\net45\EntityFramework.dll</HintPath>
- در پروژهی RabbalShopCMS.DomainClasses شما به نظر یک سری کلاسها نیستند و اضافه نشدند به سورس کنترل.
- قسمت post build event باید به صورت ذیل اصلاح شود:
Copy "$(ProjectDir)$(OutDir)*.*" "$(SolutionDir)RabbalShopCMS.Web\bin\"
به این صورت تمام فایلهای مرتبط کپی میشوند.
- در global.asax.cs پروژهی اصلی باید این موارد را حذف کنید:
ViewEngines.Engines.Clear();
ViewEngines.Engines.Add(new RazorViewEngine ());
Razor generator به ازای هر پلاگین دارای یک فایل RazorGeneratorMvcStart است که کارش ثبت یک ViewEngine مخصوص خواندن فایلهای View از اسمبلی برنامه است که این موارد نباید حذف شوند و اگر حذف شوند، Viewهای پلاگینها قابل مشاهده نخواهند بود.
- افزونهی دارای Area نیازی نیست فایل layout داشته باشد. فقط باید دارای یک ViewStart باشد که به layout پروژهی اصلی اشاره کند. این layout از پروژهی پایه دریافت میشود و نه از افزونه. بنابراین فایل layout افزونه باید حذف شود و اضافی است.
- بعد در حالت solution چند پروژهای اجرای دستور ذیل الزامی است: (خیلی مهم)
این مورد سبب خواهد شد تا تمام وابستگیهای solution جاری به همراه تمام پروژههای مرتبط آن یکدست شوند.
- اگر با درخواست یک آدرس، فایل view پروژهی دیگری بازگشت داده شد، ترتیب اضافه شدن PrecompiledMvcEngine را تغییر دهید. برای مثال در پروژهی پلاگین:
ViewEngines.Engines.Insert(0, engine);
در پروژهی اصلی:
ViewEngines.Engines.Add(engine);