2011-04-29 90 views
4

我找不到如何部署由nuget.server包創建的網站。 ASP.Net MVC未安裝在服務器上,因此我「爲我的項目添加了可部署的依賴關係」,並選擇了「帶有Razor語法的ASP.NET網頁」。Nuget.Core.dll版本號不匹配

問題在於它增加了Nuget.Core.dll版本1.0.11220.104,但nuget.server包添加了對版本1.3.20419.9005的Nuget.Core.dll引用。

隨着更高版本部署,我得到

無法加載文件或程序集「NuGet.Core,版本= 1.0.11220.104" 消息 隨着展開的下部版本,我得到。「編譯器錯誤消息:CS1705 :Assembly'NuGet.Server,Version = 1.3.20426.373,Culture = neutral,PublicKeyToken = null'使用'NuGet.Core,Version = 1.3.20419.9005,Culture = neutral,PublicKeyToken = 31bf3856ad364e35'它的版本高於引用程序集' NuGet.Core,Version = 1.0.11220.104,Culture = neutral,PublicKeyToken = 31bf3856ad364e35'「。

我該如何解決這個問題?

謝謝。

回答

3

我遇到了同樣的問題,使用Visual Studio中的「添加部署斌」選項後登錄了詳細的錯誤。我按照Haacked的建議設置了assemblybinding重定向,但修改了bindingRedirect實際工作。 ;)

<bindingRedirect oldVersion="0.0.0.0-1.3.20419.9005" 
          newVersion="1.3.20419.9005"/> 

之後,我得到了Erdem與System.Web.Webpages.Administrator的錯誤。我進入bin文件夾並刪除了System.Web.WebPages.dll,並且所有東西都點亮了,現在效果很好!

+0

刪除System.Web.WebPages.dll是一個壞主意。我們需要在服務器上的MVC ..不是嗎?正如菲爾在他的博客 – bhargav 2012-04-27 14:09:36

+0

中所建議的那樣,在我的情況下,MVC bin-deployed將它從應用程序的本地bin中移除,不會影響服務器上的其他任何內容。 YMMV – 2012-04-27 14:57:06

+0

你的意思是你刪除了System.Web.WebPages.Administration.dll嗎? – 2012-11-16 12:24:39

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> 
+3

使用正確的綁定重定向配置時,出現了另一個問題:System.Web.WebPages.Administration,Version = 1.0.0.0,Culture中類型爲「System.Web.WebPages.Administration.PackageManager.WebProjectSystem」的方法'AddFrameworkReference' =中立,PublicKeyToken = 31bf3856ad364e35'沒有實現。 – Erdem 2011-05-25 06:27:31

+0

同樣的問題,但與1.4: 2011-08-03 20:04:26

0

真是個噩夢。這幾乎是2011年7月,我與像彷彿這是一個Java項目:(ughhh

對於IIS6(Windows 2003服務器)的部署與MVC3/VS 2010中使用框架4.0部署了幾個小時擺弄:

  1. 做通配符映射在4.0指向一個虛擬目錄內.. C:\WINDOWS\Microsoft.NET\Framework\v4.0.30319\aspnet_isapi.dll
  2. 我將創建一個新的應用程序池指向這一點。
  3. 無數的不是那麼好玩組件缺失,所以如果你有機會到服務器安裝mvc 3更新更新(也包括mvc 3),請從下載並將其安裝在服務器上。

起初我複製過來

  • Microsoft.Web.Infrastructure
  • System.Web.Razor
  • System.Web.WebPages
  • System.Web.WebPages所有這些文件。剃刀,

但是,如果你在服務器上安裝MVC 3,那麼你可能不需要。我強調的那個交易斷路器是@Erdem提到的這個錯誤「'System.Web.WebPages.Administration ...'」。我嘗試了一切。在服務器上安裝MVC修復了它!對於Godaddy和其他.NET託管提供商,他們應該已經安裝了MVC和程序集。

+2

嗯,爲了公平起見,這是2011年,你仍然在使用2003年8以前的IIS 6! ;)從集成模式開始,它變得更加簡單。 – Haacked 2011-08-08 02:17:49

+1

我得到了99個問題,但一個....嗯,與州政府的合同工作,我沒有選擇。 Windows 2008 Server將在12個月內實施。 – 2011-08-09 06:25:17

0

它似乎唯一未包括的引用是Microsoft.Web.Infrastructure。爲了解決這個問題,我添加了'具有Razor語法的ASP.NET網頁的Deployable Dependencies',然後刪除'_bin_deployableAssemblies'文件夾中除Microsoft.Web.Infrastructure之外的所有項目。這解決了這個問題。