オーチャードには別の問題があります。新しいモジュール - HelloWorld を作成しました (オーチャード Web サイトのチュートリアルのように) 私が異なることの 1 つは、プロジェクトをオーチャードの外に移動し、このモジュール プロジェクトを追加した場所に新しいソリューションを作成することです。ビルド後、robocopy でプロジェクトを Orchard.Web\Modules にコピーするように設定しました。
robocopy "$(ProjectDir)..\$(ProjectName)" "$(ProjectDir)..\..\Orchard\src\Orchard.Web\Modules\HelloWorld" /XO /NJH /E
if errorlevel 4 goto Fail
if errorlevel 0 goto End
:Fail
echo FILECOPY for $(ProjectName) FAILED
exit 1
:End
echo FILECOPY for $(ProjectName) COMPLETED OK
exit 0
モジュールがコピーされた後、モジュールでページにアクセスしようとすると、404 応答が返されます。
Routes.cs には
public IEnumerable<RouteDescriptor> GetRoutes()
{
return new[]
{
new RouteDescriptor
{
Priority = 20,
Route =
new Route(
"HelloWorld",
new RouteValueDictionary
{
{ "area", "HelloWorld" }, { "controller", "Home" }, { "action", "Index" }
},
new RouteValueDictionary(),
new RouteValueDictionary { { "area", "HelloWorld" } },
new MvcRouteHandler())
}
};
}
Orchard.Web\Modules\HelloWorld で Routes.cs を開き、変更 (スペースの追加やコメントの変更など) を行って Routes.cs を保存すると、モジュールが動作し始めます。モジュールを Modules フォルダーにコピーした後、モジュールが機能しない理由を知っている人はいますか?