Файл проекта пользовательского модуля Orchard CMS

У меня есть существующее решение (несколько проектов, один веб-проект MVC), которое я пытаюсь обернуть в модуль Orchard.

Во всей документации говорится, что веб-csproj должен находиться в корневом каталоге моего модуля (например, Modules/MyModule/MyWeb.csproj).

Однако у меня есть существующая структура решения, в которой файл sln находится на верхнем уровне, а каждый файл csproj (и содержимое проекта) находится в своем собственном каталоге (стандартная структура решения при создании многопроектного приложения в Visual Studio).

Есть ли способ сообщить моему файлу Module.txt, что csproj модуля Orchard находится в разделе MyModule/MyWeb/MyWeb.csproj? Я бы предпочел не реструктурировать все решение.

Спасибо.


person Jeff    schedule 07.04.2013    source источник


Ответы (1)


Примечание. Для пояснения, это не ~/Modules/MyModule/MyWeb.csproj, а ~/Modules/MyModule/MyModule.csproj. Имя папки модуля должно совпадать с именем файла проекта (до .csproj). Это обеспечивается загрузчиком динамических расширений, для которого требуется ~/Module/{ModuleId}/{ModuleId}.csproj. (Аналогичный подход требуется для тем.)

Единственный возможный способ сделать это — написать собственный модуль, который следует описанному выше и содержит собственный загрузчик. В своем модуле создайте собственную реализацию IExtensionLoader и зарегистрируйте ее в Autofac. Однако я не знаю, сработает ли это; Я никогда не пробовал.

Вероятно, вам будет легче реорганизовать свое решение.

person Jay Harris    schedule 27.06.2013