我无法弄清楚我应该如何部署由nuget.server包创建的网站。 ASP.Net MVC未安装在服务器上,因此我将“可部署的依赖项”添加到我的项目中,并选择“使用Razor语法的ASP.NET网页”。
问题在于它添加了Nuget.Core.dll版本1.0.11220.104,但是nuget.server包为Nuget.Core.dll添加了对版本1.3.20419.9005的引用。
部署了更高版本后,我得到了
无法加载文件或程序集“NuGet.Core,Version = 1.0.11220.104”消息。 部署了较低版本后,我收到“编译器错误消息:CS1705:程序集'NuGet.Server,版本= 1.3.20426.373,Culture =中立,PublicKeyToken = null'使用'NuGet.Core,Version = 1.3.20419.9005,Culture = neutral, PublicKeyToken = 31bf3856ad364e35'的版本高于引用的程序集'NuGet.Core,Version = 1.0.11220.104,Culture = neutral,PublicKeyToken = 31bf3856ad364e35'“。
我该如何解决这个问题?
感谢。
答案 0 :(得分:3)
在visual studio中使用'add deployable bin'选项后,我遇到了同样的问题。我按照Haacked的建议设置了assemblybinding重定向,但修改了bindingRedirect以实际工作。 ;)
<bindingRedirect oldVersion="0.0.0.0-1.3.20419.9005"
newVersion="1.3.20419.9005"/>
之后我收到了您使用System.Web.Webpages.Administrator获得Erdem的错误。我进入bin文件夹并删除了System.Web.WebPages.dll,一切都亮了,现在效果很好!
答案 1 :(得分:2)
尝试在web.config中添加指向更高版本的绑定重定向。此外,如果您不介意,请帮助我们并在http://nuget.codeplex.com/workitem/list/basic
上记录详细的错误<configuration>
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="NuGet.Core"
publicKeyToken="31bf3856ad364e35"
culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0"
newVersion="1.3.20419.9005"/>
</dependentAssembly>
</assemblyBinding>
</runtime>
</configuration>
答案 2 :(得分:0)
多么噩梦。这几乎是2011年7月,我正在摆弄几个小时,好像这是一个Java项目:(嗯)
对于使用框架4.0的MVC3 / vs 2010的IIS6(Windows 2003服务器)部署:
C:\WINDOWS\Microsoft.NET\Framework\v4.0.30319\aspnet_isapi.dll
首先,我将所有这些文件复制到
上但是,如果您在服务器上安装MVC 3,那么您可能不需要。我强调的那个交易破坏者是@Erdem提到的这个错误“'System.Web.WebPages.Administration ...”。我尝试了一切。在服务器上安装MVC修复它!对于Godaddy和其他.NET托管提供商,他们应该已经安装了MVC和程序集。
答案 3 :(得分:0)
看来唯一没有包含的参考是Microsoft.Web.Infrastructure。为解决此问题,我为“带有Razor语法的ASP.NET网页”添加了Deployable Dependencies,然后删除了除“Microsoft.Web.Infrastructure”之外的“_bin_deployableAssemblies”文件夹中的所有项目。这解决了这个问题。