programing

System.web.mvc가 없습니다.

linuxpc 2023. 5. 16. 22:14
반응형

System.web.mvc가 없습니다.

오래된 ASP가 있습니다.VS2010에 구축된 NET MVC 3 웹 애플리케이션은 지난주 보안 업데이트 이후 컴파일에 실패합니다.

문제는 시스템에 대한 참조입니다.Web.Mvc.dll이 손상되었습니다.

보안 업데이트가 실행되지 않은 빌드 컴퓨터에서 솔루션 파일을 열고 References->System의 속성 대화 상자를 엽니다.웹.MVC, 괜찮아 보입니다.

경로는 C:\Program Files\Microsoft ASP입니다.NET\ASP.NET MVC 3\어셈블리\시스템. 웹.Mvc.dll 버전은 3.0.0.0입니다.

그러나 보안 업데이트가 실행된 개발 컴퓨터에서 솔루션 파일을 열면 References->System.Web.MVC가 누락된 것으로 플래그 지정되었습니다.제거한 후 VS2010의 Add Reference(참조 추가) 대화 상자를 사용하여 다시 추가하려고 하면 표시되지 않습니다.

웹을 돌아다니면서 나는 NuGet을 사용하여 MVC를 업데이트하는 것과 관련된 제안을 하게 되었습니다.우리는 VS2010 프로젝트에서 NuGet을 사용하지 않았기 때문에 이 상황에 적합하지 않은 것 같습니다.어쨌든 시도해 보았지만 결국 6개의 참조 자료가 누락되었습니다.

"C:"의 속성을 확인할 때\Program Files\Microsoft ASP.NET\ASP.NET MVC 3\어셈블리\시스템. 웹.Windows 탐색기의 Mvc.dll"은 빌드 시스템에 버전 3.0.0이 표시됩니다.

개발 시스템의 속성을 보면 버전 3.0.50813.1이 표시됩니다.

필요한 것은 에 설치된 두 DLL 중 어떤 DLL을 빌드하고 실행할 수 있도록 빌드 및 실행 방법을 변경하는 방법입니다.NET 3.0 프레임워크.

아이디어?

내가 시도한 것은 효과가 없었습니다.

첫 번째 시도 - 어셈블리가 없으면 추가합니다.누락된 이전 참조를 삭제했습니다.그런 다음 "ASP"에서 DLL을 복사했습니다.NET MVC3\Assemblys" 폴더를 프로젝트의 폴더에 추가합니다.항상 복사로 설정하고 참조로 추가합니다.

이를 통해 프로젝트는 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의 맨 아래에 있는 Package Manager Console 탭을 엽니다.그런 다음 다음 명령을 사용합니다.

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

"-Version" 이후에 탭 키를 누르면 사용 가능한 모든 버전의 목록이 표시됩니다.

이전 버전의 NuGet이 있는 경우 업그레이드해야 한다는 오류가 발생할 수 있습니다.그렇다면 도구->확장 관리자를 열어 최신 버전의 NuGet을 설치합니다.NuGet을 설치하려면 먼저 Dev Studio를 Administrator로 실행해야 합니다.

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>

MVC 5

C:\Program Files(x86)\Microsoft ASP.NET\ASP.NET Web Stack 5\Packages\ Microsoft.AsNet.Mvc.5.0.0\lib\net45\System.웹.MVC.dll

MVC 4

C:\Program Files(x86)\Microsoft ASP.NET\ASP.NET MVC 4\어셈블리\시스템. 웹.Mvc.dll

MVC 3

C:\Program Files(x86)\Microsoft ASP.NET\ASP.NET MVC 3\어셈블리\시스템. 웹.Mvc.dll

MVC 2

C:\Program Files(x86)\Microsoft ASP.NET\ASP.NET MVC 2\어셈블리\시스템. 웹.Mvc.dll

시스템은 어디에 있습니까?MVC 3이 설치된 시스템에서 Web.MVC dll?

이 문제를 해결하는 가장 쉬운 방법은 ASP 설치입니다.웹 플랫폼 설치 관리자의 NET MVC 3.

여기에 이미지 설명 입력

http://www.microsoft.com/web/downloads/

또는 Nuget 명령을 사용하여

Install-Package Microsoft.AspNet.Mvc -Version 3.0.50813.1

VS 2017에서 솔루션을 정리하고 재구축하여 수정했습니다.

만약 누군가가 같은 실수를 하는 위치에 있다면 말입니다.저의 경우는 마이크로소프트를 다운그레이드하고 있습니다.AsNet.Mvc를 다시 업그레이드하는 것이 도움이 되었습니다.Fleele을 설치하고 제거한 후 이 문제가 발생했습니다.시스템.웹.MVC가 참조가 잘못되어 있어 솔루션을 청소하거나 재구축하는 것이 제 경우에는 작동하지 않았습니다.위의 답변 중 아무 것도 당신에게 맞지 않는 것이 있다면 시도해 보세요.

저도 같은 상황입니다.Visual Studio 2010, NuGet 설치 안 됨 및 ASP.시스템을 사용하는 NET 응용 프로그램입니다.웹.MVC 버전 3.

제게 효과가 있었던 것은 시스템을 사용하는 각 C# 프로젝트를 설정하는 것이었습니다.Web.Mvc, 솔루션 탐색기의 참조로 이동하여 시스템에서 속성을 설정합니다.로컬 복사를 true로, 특정 버전을 false로 설정한 Web.Mvc - 마지막 버전은 해당 시스템의 현재 버전을 표시하는 버전 필드입니다.

2017년 대 2017년에 이 문제가 발생했을 때, 나는 이미 시스템이 아닌 nug를 통해 MVC를 받았습니다.Web.MVC가 "어셈블리" 목록의 "참조 추가"에 나타나지 않았습니다.

솔루션은 "참조 추가" 대화상자의 "어셈블리"에서 "확장"을 선택하는 것이었습니다.

./packages/Microsoft에서 참조를 다시 추가합니다.AsNet.Mvc.[version]/lib/net45/System.웹.MVC.dll

저의 경우, 저는 제 프로젝트에서 모든 적절한 참고 자료를 가지고 있었습니다.솔루션을 구축함으로써 너겟 패키지가 자동으로 복원된다는 것을 알게 되었습니다.

2015년 vs. 2015년에 열린 샘플 mvcmusicstore.codeplex.com 에는 시스템과 같은 일부 참조가 누락되었습니다.web.mvc.

이 문제에 대한 해결책은 참조에서 해당 항목을 제거하고 참조를 추가하는 것이었습니다. 어셈블리 아래에서 확장을 선택하면 시스템을 찾아서 추가할 수 있습니다.웹.MVC.

(너겟 패키지와 함께 추가한 다른 어셈블리)

언급URL : https://stackoverflow.com/questions/26535131/system-web-mvc-missing

반응형