0

我有一个现有的解决方案(多个项目,一个 MVC Web 项目),我试图将其包装到一个 Orchard 模块中。

所有文档都说 web csproj 应该位于我的模块目录下的根目录下(例如 Modules/MyModule/MyWeb.csproj)。

但是,我有一个现有的解决方案结构,其中 sln 文件位于顶层,每个 csproj 文件(和项目内容)位于其自己的目录中(在 Visual Studio 中构建多项目应用程序时的标准解决方案结构)。

有没有办法告诉我的 Module.txt 文件 Orchard Module csproj 在 MyModule/MyWeb/MyWeb.csproj 下?我宁愿不重组整个解决方案。

谢谢你。

4

1 回答 1

0

注意:作为澄清点,它不是 ~/Modules/MyModule/MyWeb.csproj 而是 ~/Modules/MyModule/MyModule.csproj。模块的文件夹名称必须与项目的文件名匹配(在 .csproj 之前)。这是由动态扩展加载器强制执行的,它需要 ~/Module/{ModuleId}/{ModuleId}.csproj。(主题需要类似的方法。)

唯一可能的方法是编写一个包含自定义加载器的自定义模块,该模块遵循上述内容。在您的模块中,创建您自己的 IExtensionLoader 实现,并将其注册到 Autofac。但是,我不知道它是否会起作用;我从来没有试过。

您可能会更轻松地重新组织您的解决方案。

于 2013-06-27T00:33:32.160 回答