Jef*_*ege 81 .net c# asp.net asp.net-mvc
自上周的安全更新以来,我们在VS2010中构建了一个旧的ASP.NET MVC 3 Web应用程序,无法编译.
问题是对System.Web.Mvc.dll的引用被破坏.
当我在我的构建机器上打开解决方案文件时,安全更新尚未运行,并打开References-> System.Web.MVC的属性对话框,它看起来很好.
路径是C:\ Program Files\Microsoft ASP.NET\ASP.NET MVC 3\Assemblies\System.Web.Mvc.dll版本是3.0.0.0
但是当我在运行安全更新的开发机器上打开解决方案文件时,References-> System.Web.MVC被标记为缺失.如果我删除它,并尝试使用VS2010的"添加引用"对话框将其添加回来,则不会显示.
在网上闲逛让我得到了使用NuGet更新MVC的建议.在我们的VS2010项目中,我们没有使用NuGet,因此对于这种情况看起来似乎不太正确.无论如何我试了一下,最后还有六个丢失的参考文献.
当我在Windows资源管理器中查看"C:\ Program Files\Microsoft ASP.NET\ASP.NET MVC 3\Assemblies\System.Web.Mvc.dll"的属性时,在构建计算机上,我看到版本3.0.0.0.
当我查看开发机器上的属性时,我看到版本3.0.50813.1.
我需要的是一种改变我构建和运行方式的方法,这样我就可以构建和运行.NET 3.0框架中安装的这两个DLL中的哪一个.
想法?
第一次尝试 - 如果组件丢失,请添加它.我删除了旧的遗失参考.然后我将DLL从"ASP.NET MVC3\Assemblies"文件夹复制到我项目的文件夹中.将其设置为"始终复制",并将其添加为参考.
有了这个,该项目将在VS2010中编译,但是当我尝试使用aspnet_compiler预编译页面时,我收到了警告:
(0): warning CS1702: Assuming assembly reference 'System.Web.Mvc, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' matches 'System.Web.Mvc, Version=3.0.0.1, Culture=neutral, PublicKeyToken=31bf3856ad364e35', you may need to supply runtime policy
Run Code Online (Sandbox Code Playgroud)
到目前为止,我已经设法避免了解运行时策略,但我尝试在web.config中添加它:
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35" />
<bindingRedirect oldVersion="1.0.0.0-3.0.0.0" newVersion="3.0.0.1" />
</dependentAssembly>
</assemblyBinding>
</runtime>
Run Code Online (Sandbox Code Playgroud)
再次尝试,并得到相同的警告.
我的问题是 - 我还有问题吗?或者我会解决它,尽管有警告?
3sp*_*pot 129
通过NuGet获取最新版本的MVC3.在Dev Studio中打开您的项目.打开Dev Studio底部的Package Manager Console选项卡.然后使用此命令:
PM> Install-Package Microsoft.AspNet.Mvc -Version 3.0.50813.1
Run Code Online (Sandbox Code Playgroud)
如果在"-Version"之后单击Tab键,您将获得所有可用版本的列表.
如果你有一个旧版本的NuGet,你可能会收到一个错误,表明你必须升级它.如果是这样,请打开Tools-> Extension Manager以安装最新版本的NuGet.注意,您需要以管理员身份运行Dev Studio才能安装NuGet.
安装MVC3应该更新项目中的Web.config.
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35" />
<bindingRedirect oldVersion="0.0.0.0-3.0.0.1" newVersion="3.0.0.1" />
</dependentAssembly>
</assemblyBinding>
Run Code Online (Sandbox Code Playgroud)
kir*_*irk 27
MVC 5
C:\ Program Files(x86)\ Microsoft ASP.NET\ASP.NET Web Stack 5\Packages\Microsoft.AspNet.Mvc.5.0.0\lib \net45\System.Web.Mvc.dll
MVC 4
C:\ Program Files(x86)\ Microsoft ASP.NET\ASP.NET MVC 4\Assemblies\System.Web.Mvc.dll
MVC 3
C:\ Program Files(x86)\ Microsoft ASP.NET\ASP.NET MVC 3\Assemblies\System.Web.Mvc.dll
MVC 2
C:\ Program Files(x86)\ Microsoft ASP.NET\ASP.NET MVC 2\Assemblies\System.Web.Mvc.dll
在哪里可以找到安装了MVC 3的系统中的System.Web.MVC dll?
Md.*_*rim 21
解决此问题的最简单方法是从Web平台安装程序安装ASP.NET MVC 3.
http://www.microsoft.com/web/downloads/
或者使用Nuget命令
Install-Package Microsoft.AspNet.Mvc -Version 3.0.50813.1
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
187607 次 |
最近记录: |