我有一个现有的解决方案(多个项目,一个MVC Web项目),我正试图将其包装到Orchard模块中。
所有文档都说web csproj应该位于我的模块目录下的根目录下(例如Modules / MyModule / MyWeb.csproj)。
但是,我有一个现有的解决方案结构,其中sln文件位于顶层,每个csproj文件(和项目内容)都位于其自己的目录中(在Visual Studio中构建多项目应用程序时的标准解决方案结构)。
有没有办法告诉我的Module.txt文件,Orchard Module csproj在MyModule / MyWeb / MyWeb.csproj下?我宁愿不重组整个解决方案。
谢谢。
答案 0 :(得分:0)
注意:作为澄清点,它不是〜/ Modules / MyModule / MyWeb.csproj,而是〜/ Modules / MyModule / MyModule.csproj。模块的文件夹名称必须与项目的文件名匹配(在.csproj之前)。这是由动态扩展加载器强制执行的,它需要〜/ Module / {ModuleId} / {ModuleId} .csproj。 (主题需要类似的方法。)
唯一可行的方法是编写一个包含自定义加载器的自定义模块。在您的模块中,创建您自己的IExtensionLoader实现,并使用Autofac注册它。但是,我不知道它是否有用;我从未尝试过。
您可能会更轻松地重新组织解决方案。