可以更改Orchard CMS模块的默认位置吗?

时间:2011-12-13 15:14:43

标签: orchardcms

我正在设置一个Orchard CMS项目,目的是创建一个模块来存放我的MVC 3应用程序。该应用程序已经启动,已经有5个项目。一个Web项目,一些测试项目和一个工作流项目。

要求web项目(以及简单的其他4个项目)存在于/Orchard.Web/Modules/中,这是一个小麻烦 - 是否可以在动态加载时更改Orchard的位置(或添加新位置)模块?

这不是一个大问题,但对这个项目来说很不错。

在一个理想的世界里,我能够拥有:

/OrchardStuff/Orchard.Web
/OrchardStuff/etc
/MyStuff/MyProj.Web
/MyStuff/MyProj.Tests

我知道我可以用一种很好用的方式安排我的sln,如果我可以在文件系统中复制它,那就太好了。

干杯。

3 个答案:

答案 0 :(得分:2)

在Web项目中添加afterBuild任务以将应用程序复制到Orchard的模块目录会不会更容易?

csproj文件中的那些东西会起作用(有点,我不完全确定我的语法。:'()

<Target Name="AfterBuild">
  <ItemGroup>
  <AppFiles Include="**\*.*"/>
  </ItemGroup>
  <Copy SourceFiles="@(AppFiles)"
        DestinationFiles="@(AppFiles->'..\OrchardStuff\Orchard.Web\Modules\MyModule\%(RecursiveDir)%(Filename)%(Extension)')" />

</Target>

MSDN文档位于:http://msdn.microsoft.com/en-us/library/3e54c37h.aspx

答案 1 :(得分:1)

我使用的解决方案是在构建后操作中添加以下行:

if not exist "$(SolutionDir)..\Orchard\src\Orchard.Web\Modules\$(ProjectName)" mklink /D "$(SolutionDir)..\Orchard\src\Orchard.Web\Modules\$(ProjectName)" ""$(ProjectDir)"

此命令在Orchard的Modules文件夹中创建dev文件夹的符号链接(仅当此类符号链接尚不存在时)。

与@ Eilistraee的答案相比,它具有以下优势:

  1. 如果您在开发机器中更改了Javascript / CSS文件,则无需构建项目即可将更改更改为Orchard。
  2. 您的驱动器上没有重复文件
  3. 构建后是一个更明确的选项,宏变量可以轻松复制到任何新模块。

答案 2 :(得分:0)

如果没有一些重大努力,这是不可能的。不值得。