2011-12-13 74 views
2

我正在創建一個Orchard CMS項目,目的是創建一個模塊來容納我的MVC 3應用程序。這個應用程序已經啓動,已經有5個項目。一個Web項目,一些測試項目和一個工作流程項目。可以更改Orchard CMS模塊的默認位置嗎?

要求web項目(以及其他4個項目爲簡單起見)生活在/Orchard.Web/Modules/中是一個小小的不便 - 是否有可能在動態變化時更改Orchard的外觀(或添加新位置)加載模塊?

這不是一個大規模的交易,但對這個項目很有好處。

在一個理想的世界,我想能夠有:

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

我知道我可以安排我的一個很好的方式使用SLN,將是很好,如果我可以在文件系統中複製此。

乾杯。

回答

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

0

。不,那是不可能沒有一些重大的努力不值得

+0

感謝您的快速反應 - 您是否看到上述Eilistraee的想法存在任何問題? –

+0

Eilistraee的想法是已經在Orchard.Azure解決方案中使用的想法:在那裏,模塊需要位於Orchard.Azure.Web/Modules文件夾中,以便在comppilation任務中從Azure.Web/Modules中複製模塊。它在那裏工作,所以它也應該爲你的情況:) – Falanwe

+0

偉大的,感謝您的反饋! –

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文件在你的dev的機器,你不需要建項目,以獲得變爲果園。
  2. 你不會在你的驅動器上得到重複的文件
  3. 後構建是一個更明確的選項,宏變量可以很容易地複製到任何新的模塊。