ServiceStack.Razorに基づく現在非常に単純なWebアプリをAppHarborに展開しようとしていますが、asp.netのプリコンパイル手順で失敗します。
Microsoft (R) ASP.NET Compilation Tool version 4.0.30319.17929
Utility to precompile an ASP.NET application
Copyright (C) Microsoft Corporation. All rights reserved.
d:\temp\ueggj0qu.hf5\temp\root\61980531\2c38de0c\App_Web_431dglyw.0.cs(15): error CS0146: Circular base class dependency involving 'RazorOutput.ViewPage' and 'RazorOutput.ViewPage'
[HttpCompileException]: d:\temp\ueggj0qu.hf5\temp\root\61980531\2c38de0c\App_Web_431dglyw.0.cs(15): error CS0146: Circular base class dependency involving 'RazorOutput.ViewPage' and 'RazorOutput.ViewPage'
at System.Web.Compilation.AssemblyBuilder.Compile()
at System.Web.Compilation.WebDirectoryBatchCompiler.CompileAssemblyBuilder(AssemblyBuilder builder)
at System.Web.Compilation.WebDirectoryBatchCompiler.<CompileNonDependentBuildProviders>b__0(AssemblyBuilder assemblyBuilder)
at System.Web.Compilation.CompilationUtil.CompileParallel(ICollection assemblyBuilders, Action`1 action)
at System.Web.Compilation.WebDirectoryBatchCompiler.CompileNonDependentBuildProviders(ICollection buildProviders)
at System.Web.Compilation.WebDirectoryBatchCompiler.Process()
at System.Web.Compilation.BuildManager.BatchCompileWebDirectoryInternal(VirtualDirectory vdir, Boolean ignoreErrors)
at System.Web.Compilation.BuildManager.BatchCompileWebDirectory(VirtualDirectory vdir, VirtualPath virtualDir, Boolean ignoreErrors)
at System.Web.Compilation.BuildManager.PrecompileWebDirectoriesRecursive(VirtualDirectory vdir, Boolean topLevel)
at System.Web.Compilation.BuildManager.PrecompileWebDirectoriesRecursive(VirtualDirectory vdir, Boolean topLevel)
at System.Web.Compilation.BuildManager.PrecompileAppInternal(VirtualPath startingVirtualDir, IEnumerable`1 excludedVirtualPaths)
at System.Web.Compilation.BuildManager.PrecompileApp(VirtualPath startingVirtualDir, IEnumerable`1 excludedVirtualPaths)
at System.Web.Compilation.BuildManager.PrecompileApp(ClientBuildManagerCallback callback, IEnumerable`1 excludedVirtualPaths)
at System.Web.Compilation.BuildManagerHost.PrecompileApp(ClientBuildManagerCallback callback, List`1 excludedVirtualPaths)
at System.Web.Compilation.BuildManagerHost.PrecompileApp(ClientBuildManagerCallback callback, List`1 excludedVirtualPaths)
at System.Web.Compilation.ClientBuildManager.PrecompileApplication(ClientBuildManagerCallback callback, Boolean forceCleanBuild)
at System.Web.Compilation.ClientBuildManager.PrecompileApplication(ClientBuildManagerCallback callback)
at System.Web.Compilation.Precompiler.Main(String[] args)
プリコンパイルをオフにできることは知っていますが、プロジェクトをさらに複雑にする前に、今すぐこの問題の根底に立ちたいと思います。
プロジェクトは現在、次の非常に基本的なバージョンで構成されています。
- Views / _Layout.cshtml
- Views / SomeServiceResponseView.cshtml
- content / SomeStaticView.cshtml
静的ビューは100%静的ではなく(Razorで生成されたビューのままです)、サービスDTOモデルに基づいていないだけです。
_LayoutとStaticViewはどちらもViewPageから派生しています(例@inherits ViewPage
)。
ServiceResponseViewは、ViewPageの汎用モデルバージョンから派生しています(例@inherits ViewPage<SomeDtoResponse>
)。
aspnet_compiler.exeツールをローカルで実行しましたが、上記と同じ出力しか得られませんでした(AppHarbor FAQは、プリコンパイルの問題をデバッグするためにローカルで実行することを提案していますが、それが私に何かを与える方法を見つけることができませんでした詳しくは...?)。
誰かが以前に同様のエラーメッセージを見たことがありますか?
かみそりが隠れて何をしているのかについてもっと知っている人は、これを引き起こしている可能性のあるものについて何か手がかりを得ましたか?
これは、ServiceStack.Razorと通常のASP.NET MVC Razorの違いによる問題ですか。この場合、プリコンパイルをオフにするのが正しい解決策ですか。