我试图实施this workaround的问题,因为RazorEngine不能在Razor 2.0应用程序中部署,因为它依赖于不兼容的Razor 1.0。Asp.net不应用dependentAssembly/codeBase提示
我所做的是在bin文件夹中创建了两个目录:1.0和2.0,并将相应的System.Web.Razor.dll文件放入每个目录中。然后,我将dependentAssembly/codeBase提示添加到web.config中,以指向正确方向的程序集加载器。
但是,我似乎无法得到Asp.net尊重我已申请System.Web.Razor程序集的codeBase覆盖。结果是System.Web.Razor 1.0.0.0无法加载供RazorEngine使用。
的Web.config
<configuration>
<runtime xmlns="">
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Web.Razor" publicKeyToken="31bf3856ad364e35" culture="neutral" />
<codeBase version="1.0.0.0" href="file://c:\apps\lr2\web\arcs\bin\1.0\System.Web.Razor.dll" />
<codeBase version="2.0.0.0" href="file://c:\apps\lr2\web\arcs\bin\2.0\System.Web.Razor.dll" />
</dependentAssembly>
</assemblyBinding>
</runtime>
</configuration>
自Fusion组件装载日志输出System.Web.Razor 1.0.0.0:
LOG:用户= NT AUTHORITY \ SYSTEM LOG:DisplayName的= 系统.Web.Razor,版本= 1.0.0.0,文化=中性 公钥= 31bf3856ad364e35(完全指定的)
LOG:应用平台=文件:/// C:/应用/ LR2 /网络/弧/
LOG:初始PrivatePath = C:\ APPS \ LR2 \网络\弧\ BIN
日志:动态基= C:\ WINDOWS \ Microsoft.NET \框架\ v4.0.30319 \临时ASP.NET 文件\ ROOT \ a63cc915
日志:缓存基= C:\ WINDOWS \ Microsoft.NET \框架\ v4.0.30319 \临时ASP.NET 文件\ ROOT \ a63cc915
LOG:AppName的= 98966cc9
Calli ng汇编:RazorEngine,Version = 3.0.8.0,Culture = neutral, PublicKeyToken = 9ee697374c7e744a。
LOG:此绑定在默认加载上下文中启动。
LOG:使用应用程序配置文件: C:\ APPS \ LR2 \网络\弧\ web.config中
LOG:使用主机配置文件: C:\ WINDOWS \ Microsoft.NET \框架\ V4 .0.30319 \ aspnet.config
LOG:使用来自 的计算机配置文件C:\ Windows \ Microsoft.NET \ Framework \ v4.0.30319 \ config \ machine.config。
LOG:后政策参考:System.Web.Razor,版本= 1.0.0.0, 文化=中性公钥= 31bf3856ad364e35
LOG:GAC查找不成功。
LOG:尝试新的URL 文件下载:/// C:/Windows/Microsoft.NET/Framework/v4.0.30319/Temporary ASP.NET文件/根/ a63cc915/98966cc9/System.Web.Razor .DLL。
LOG:尝试新的URL 文件下载:/// C:/Windows/Microsoft.NET/Framework/v4.0.30319/Temporary ASP.NET 文件/根/ a63cc915/98966cc9/System.Web程序。剃刀/ System.Web.Razor.DLL。
日志:试图下载新的URL file:/// C:/apps/lr2/web/arcs/bin/System.Web.Razor.DLL。日志:试图下载新的URL file:/// C:/apps/lr2/web/arcs/bin/System.Web.Razor/System.Web.Razor.DLL。
LOG:尝试新的URL 文件下载:/// C:/Windows/Microsoft.NET/Framework/v4.0.30319/Temporary ASP.NET文件/根/ a63cc915/98966cc9/System.Web.Razor 。可执行程序。
LOG:尝试新的URL 文件下载:/// C:/Windows/Microsoft.NET/Framework/v4.0.30319/Temporary ASP.NET 文件/根/ a63cc915/98966cc9/System.Web程序。剃刀/ System.Web.Razor.EXE。
日志:试图下载新的URL file:/// C:/apps/lr2/web/arcs/bin/System.Web.Razor.EXE。
日志:试图下载新的URL file:/// C:/apps/lr2/web/arcs/bin/System.Web.Razor/System.Web.Razor.EXE。
LOG:所有探测URL尝试失败。
任何想法为什么Asp.net永远不会试图挖入bin \ 1.0?
我没有检查machine.config,并没有冲突的assemblyBinding的迹象。
感谢帮助!