我使用VS2015和MVC 5.2.3,试图将包括Razor视图在内的功能领域转移到类库,以便可以在多个项目之间共享它。
我使用通常描述的MvcBuildViews工具,并使用如下所示的设置,因为它通常会在发布前捕获拼写错误:
<Target Name="MvcBuildViews" AfterTargets="AfterBuild" Condition="'$(MvcBuildViews)'=='true'">
<AspNetCompiler VirtualPath="temp" PhysicalPath="$(ProjectDir)" />
</Target>
这与主项目本身可以很好地工作,但是我无法使其与库一起使用,相反,出现以下编译器错误:
web.config(41):错误ASPCONFIG:无法加载文件或程序集 'System.Web.Mvc,版本= 5.2.3.0,文化=中性, PublicKeyToken = 31bf3856ad364e35'或其依赖项之一。的 系统找不到指定的文件。
所引用的web.config部分显示如下:
<system.web>
<compilation>
<assemblies>
<add assembly="System.Web.Mvc, Version=5.2.3.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
</assemblies>
</compilation>
<httpRuntime targetFramework="4.6"/>
</system.web>
所有设置看起来都与主项目非常相似,并且实验一直没有结果,并且使我回到上面的相同基本错误中。必需的参考均已设置,并且与主项目相同。
我了解csproj中的AspNetCompiler标记是 aspnet_compiler.exe 过程的包装,但是与主项目相比,我看不出类库中的编译环境有什么不同
是否有可能在此标记中将特定的程序集搜索文件夹传递给编译器? -由于System.Web.Mvc.dll程序集确实存在,因此在类库项目的bin \ Release文件夹中。还是有更好的方法?
关于 aspnet_compiler.exe 内部过程的详细信息很少,而且似乎没有冗长的诊断模式。
我应该如何进行呢?