Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2012/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Visual studio 2012 添加了对System.Web.WebPages 3.0的引用,立即更改为2.0_Visual Studio 2012_Asp.net Mvc 5 - Fatal编程技术网

Visual studio 2012 添加了对System.Web.WebPages 3.0的引用,立即更改为2.0

Visual studio 2012 添加了对System.Web.WebPages 3.0的引用,立即更改为2.0,visual-studio-2012,asp.net-mvc-5,Visual Studio 2012,Asp.net Mvc 5,小结:解决方案中有一个项目无法指向WebPages 3.0(或Helpers 3.0)。其他的都很好,但其中一个会立即解析为x86 2.0程序集的程序文件 背景:我继承了一个MVC应用程序。我对它做了一些更新,在上一次迭代中将它升级到MVC-3。直截了当地说,我发现自己陷入了一个意想不到的困境,似乎在我尝试的修复过程中雪球般地前进 我一直致力于二进制部署,无需在构建服务器和web服务器上安装软件包。因此,我在解决方案树中有MVC/ASP.Net WePage二进制文件,其中引用了这些本地副本 我

小结:解决方案中有一个项目无法指向WebPages 3.0(或Helpers 3.0)。其他的都很好,但其中一个会立即解析为x86 2.0程序集的程序文件

背景:我继承了一个MVC应用程序。我对它做了一些更新,在上一次迭代中将它升级到MVC-3。直截了当地说,我发现自己陷入了一个意想不到的困境,似乎在我尝试的修复过程中雪球般地前进

我一直致力于二进制部署,无需在构建服务器和web服务器上安装软件包。因此,我在解决方案树中有MVC/ASP.Net WePage二进制文件,其中引用了这些本地副本

我改变了什么:信不信由你,我从来没有惹过NU-GET,我决定尝试一下。我删除了所有本地二进制文件(检查了2x、3x、100x以确保),并添加了MVC5及其依赖项。这看起来很棒,因为我可以消除我自己开发的二进制模式,而代之以存储在磁盘/TFS上的解决方案树下的包。我还认为我可能会点所有的项目,以最新的4.5固件

问题:关于编译VS抱怨我有上面提到的DLL的v2和v3,但我没有对v2的引用。此外,在编译之前,如果我删除引用并重新添加它(指向包库内容),它将立即作为v2.0出现,解析的文件夹是x86 v2实例

在试图解决这个问题时,我已经删除了这些软件包并重新安装了好几次,但都无济于事

我还尝试将绑定重定向添加到we.config,但我怀疑这是运行时的问题?在这个解决方案中,我还有许多其他项目,它们都很好,指向3.0

我使用reflector查看了bin文件夹中所有程序集的引用,认为我会找到指向第2.0页的内容,但我没有

在csproj文件中,我看到Include中硬编码为2.0的版本。我将其更改为3.0,当我重新加载解决方案时,它将恢复为2.0。啊

我已经关闭并重新加载了100次解决方案。我已经洗了1000次了。我已多次手动删除obj/bin文件夹

我只是不知道如何调试这个

  <dependentAssembly>
    <assemblyIdentity name="System.Web.WebPages" publicKeyToken="31bf3856ad364e35" />
    <bindingRedirect oldVersion="0.0.0.0-3.0.0.0" newVersion="3.0.0.0" />
  </dependentAssembly

    <Reference Include="System.Web.Helpers, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
  <Private>True</Private>
  <HintPath>..\..\packages\Microsoft.AspNet.WebPages.3.0.0\lib\net45\System.Web.Helpers.dll</HintPath>
</Reference>


我在csproj中找到了第二个包含网页和助手的内容!我不知道他们是怎么到那里的。卸载NUGET软件包将删除第一个引用,但不会删除第二个引用。为了增加挫败感,第二个引用没有指定版本或位置。添加特定于版本和位置的引用(NUGET或手动)将立即被GAC版本覆盖