Qwe*_*rty 1 sitecore nuget-package asp.net-mvc-4
使用Visual Studio 2015和Sitecore 8.0
我使用.Net Framework 4.6.1创建了一个新的MVC项目,复制并引用了Sitecore.kernel.dll和Sitecore.mvc.dll.用sitecore文件替换现有的web.config和global.asax.
在解决方案中添加了一个纯HTML页面并尝试浏览它(来自VS).该页面将打开并显示此错误
无法加载文件或程序集'System.Web.Http,Version = 5.1.0.0,Culture = neutral,PublicKeyToken = 31bf3856ad364e35'或其依赖项之一.该系统找不到指定的文件.
此HTML页面尚未发布到Sitecore.我猜,Sitecore.mvc.dll想要MVC 5.1.0,VS项目中的MVC是4.0.
所以,我尝试了以下步骤.
无法加载源https://api.nuget.org/v3/index.json的服务索引 .
删除%AppData%\NuGet\nuget.config并重新启动VS2015
手动浏览https://api.nuget.org/v3/index.json,但页面未加载 - Secure connection failed.但是这个 - http://api.nuget.org/v3/index.json将承诺下载json.所以,在nuget中将https更改为http,但是它的错误相同 - 无法加载服务索引...
当发生这种情况时,我甚至无法启动我的第一个Sitecore MVC项目.
我用常规VS项目的web.config替换了sitecore web.config,现在我可以浏览该页面了.我将其复制到输出目录设置为不复制,以便它不会被发布.
我是否能够以这种方式继续我的Sitecore开发,将来不会出现任何重大问题.
你需要做一些事情来解决这个问题:
应更新您的VS项目以web.config获取Sitecore安装中的文件.您必须拥有该文件的Sitecore版本,否则Sitecore将无法正常运行
您应该为MVC文件添加绑定重定向,使所有内容都使用最新版本:
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35" />
<bindingRedirect oldVersion="0.0.0.0-5.2.3.0" newVersion="5.2.3.0" />
</dependentAssembly>
</assemblyBinding>
etc....
</runtime>
Run Code Online (Sandbox Code Playgroud)
确保文件/views夹中的web.config文件包含所有MVC程序集的正确版本.这是我的.net 4.6应用程序:
<configSections>
<sectionGroup name="system.web.webPages.razor"
type="System.Web.WebPages.Razor.Configuration.RazorWebSectionGroup, System.Web.WebPages.Razor, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">
<section name="host"
type="System.Web.WebPages.Razor.Configuration.HostSection, System.Web.WebPages.Razor, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"
requirePermission="false" />
<section name="pages"
type="System.Web.WebPages.Razor.Configuration.RazorPagesSection, System.Web.WebPages.Razor, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"
requirePermission="false" />
</sectionGroup>
</configSections>
<system.web.webPages.razor>
<host
factoryType="System.Web.Mvc.MvcWebRazorHostFactory, System.Web.Mvc, Version=5.2.3.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
<pages pageBaseType="System.Web.Mvc.WebViewPage">
<namespaces>
<add namespace="System.Web.Mvc" />
<add namespace="System.Web.Mvc.Ajax" />
<add namespace="System.Web.Mvc.Html" />
<add namespace="System.Web.Optimization" />
<add namespace="System.Web.Routing" />
<add namespace="Sitecore.Mvc" />
<add namespace="Sitecore" />
</namespaces>
</pages>
</system.web.webPages.razor>
Run Code Online (Sandbox Code Playgroud)
完成后,您的Sitecore安装应该正确地获取最新的MVC二进制文件.
| 归档时间: |
|
| 查看次数: |
3176 次 |
| 最近记录: |