gpt4 book ai didi

c# - 缺少 System.web.mvc

转载 作者:IT王子 更新时间:2023-10-29 03:40:17 26 4
gpt4 key购买 nike

自上周的安全更新以来,我们有一个在 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。

我需要的是一种改变我构建和运行方式的方法,这样我就可以构建和运行,而不管这两个 DLL 中的哪一个安装在 .NET 3.0 框架中。

想法?

我试过但没用

第一次尝试 - 如果缺少程序集,请添加它。我删除了旧的缺失引用。然后我将 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

到目前为止,我已经设法避免理解运行时策略,但我尝试在 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>

再次尝试,得到相同的警告。

我的问题是 - 我还有问题吗?还是我会不顾警告解决它?

最佳答案

通过 NuGet 获取最新版本的 MVC3。在 Dev Studio 中打开您的项目。打开 Dev Studio 底部的包管理器控制台选项卡。然后使用这个命令:

PM> Install-Package Microsoft.AspNet.Mvc -Version 3.0.50813.1

如果您单击“-Version”之后的 Tab 键,您将获得所有可用版本的列表。

如果您使用的是旧版本的 NuGet,您可能会收到一条错误消息,指示您必须对其进行升级。如果是这样,请打开工具->扩展管理器以安装最新版本的 NuGet。请注意,在安装 NuGet 之前,您需要以管理员身份运行 Dev Studio。

安装 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>

关于c# - 缺少 System.web.mvc,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26535131/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com