programing

변환합니다.NetCore 대상.넷 프레임워크

sourcejob 2023. 6. 23. 22:02
반응형

변환합니다.NetCore 대상.넷 프레임워크

저는 있습니다.NetCore 프로젝트 웹 프로젝트이며, 다양한 이유로 로 변환하고자 합니다.Net Framework 프로젝트.

이 작업을 쉽게 수행할 수 있는 방법이 있습니까? 아니면 다시 시작하여 이전 프로젝트에서 코드를 가져와야 합니까?

VS 2017 RC Community에 핵심 프로젝트를 로드하고 *.csprojin 텍스트 편집기를 열었습니다.

그냥 teg를 삭제합니다.

<RuntimeFrameworkVersion>

및 대체

<TargetFramework>netcoreapp1.1</TargetFramework>

로.

<TargetFrameworkVersion>v4.6.1</TargetFrameworkVersion>

그리고 결국 프로젝트 속성이 다른 프레임워크로 설정되고 다시 재설정됩니다(VS 다시 로드 및 *.csproj 파일 복구).

이는 VS2017에서 도움이 되었습니다.

.net 코어 웹 프로젝트 템플릿으로 시작합니다.

*.csproj를 다음과 같이 편집합니다.

<Project Sdk="Microsoft.NET.Sdk.Web">

  <PropertyGroup>
    <TargetFramework>net472</TargetFramework>
  </PropertyGroup>

  <ItemGroup>
    <PackageReference Include="Microsoft.AspNetCore" Version="2.1.3" />
    <PackageReference Include="Microsoft.AspNetCore.CookiePolicy" Version="2.1.2" />
    <PackageReference Include="Microsoft.AspNetCore.Http.Abstractions" Version="2.1.1" />
    <PackageReference Include="Microsoft.AspNetCore.HttpsPolicy" Version="2.1.1" />
    <PackageReference Include="Microsoft.AspNetCore.Mvc" Version="2.1.2" />
    <PackageReference Include="Microsoft.AspNetCore.Mvc.Core" Version="2.1.2" />
    <PackageReference Include="Microsoft.AspNetCore.Mvc.RazorPages" Version="2.1.2" />
    <PackageReference Include="Microsoft.AspNetCore.StaticFiles" Version="2.1.1" />
  </ItemGroup>

</Project>

저장하고 닫습니다.

프로젝트를 실행해 보십시오.

PackReferences는 NuGet 파일일 뿐이며, 위의 나와 버전이 다를 경우 GUI를 통해 추가할 수 있습니다.

여기 비슷한 대답들이 많이 있습니다만, 제가 결국 하게 된 것과는 전혀 다른 답을 보지 못했기 때문에, 다른 사람이 같은 입장이 될 경우를 대비해서 여기에 두고 싶습니다.

확실히 하자면, 제 프로젝트는 콘솔 프로그램이었습니다.따라서 이 답변을 다른 용도로 사용하려는 경우 주행 거리가 달라질 수 있습니다.

의 신의에서..csproj, 파일<PropertyGroup></PropertyGroup> 태, 수<TargetFramework>다음 사항을 반영합니다.

<TargetFramework>net461</TargetFramework>

이 예에서는 v4.6.1을 사용했습니다.마침표 없이 "net"이라는 단어 뒤에 버전을 연결할 것이라고 추측할 수 있습니다.행운을 빕니다.

여기에 있는 어떤 대답도 저에게는 통하지 않았습니다..Net Core 2에서는 project.json 파일이 더 이상 존재하지 않습니다.하지만 저는 다음 단계를 사용하여 이 문제를 해결했습니다.

기존 프로젝트에서 모든 nugget 패키지를 제거했습니다.

.net 4.61을 대상으로 별도의 .net 코어 웹 앱 프로젝트를 만들었습니다.이것은 기본 너겟 패키지를 가져오기 위한 것이었습니다.

임시 프로젝트의 .csproj 파일을 편집하고 ItemGroup 내의 모든 PackageReference 노드를 복사하여 기존 프로젝트의 .csproj 파일에 붙여넣었습니다.

대상 프레임워크 노드(속성 그룹 내부)를 "netstandard2"에서 "net461"로 편집했습니다.

추적하고 해결해야 할 몇 가지 패키지 변경 사항이 있었지만, 그렇지 않으면 실행할 수 있었습니다.

2017에서 ' Project뒤에 마우스 하고 ' 내버 Visual Studio 2017(15.6.2)'을 선택합니다.<your project file>해야만 했습니다.

  1. 노드 추가:

    <TargetFrameworkVersion>v4.5.2</TargetFrameworkVersion>

  2. 노드 삭제:

    <TargetPlatformIdentifier>UAP</TargetPlatformIdentifier>

    <TargetPlatformVersion Condition=" '$(TargetPlatformVersion)' == '' ">10.0.16299.0</TargetPlatformVersion>

    <TargetPlatformMinVersion>10.0.16299.0</TargetPlatformMinVersion>

    <ProjectTypeGuids>{A5A43C5B-DE2A-4C0C-9213-0A381AF9435A};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>

이를 위해 몇 가지 단계를 수행해야 합니다.

  1. 먼저 .csproj 파일을 마우스 오른쪽 버튼으로 클릭하고 다음을 추가합니다.

   <TargetFrameworks>netstandard2.0;netcoreapp2.0;net35;</TargetFrameworks>
        <RuntimeIdentifiers>win7-x86;win7-x64</RuntimeIdentifiers> <EnableDefaultCompileItems>false</EnableDefaultCompileItems>

  1. 변경한 후에는 프로젝트를 다시 로드하고 빌드합니다.
  2. 그러면 다음이 생성됩니다..dll이 빌드에 대한 파일 및 Nuget 패키지를 프로젝트의 Debug/Release 폴더에 저장합니다.
  3. 추가.dllnuget에서 이 프로젝트에 액세스할 수 있습니다.

위의 단계를 시도합니다.이게 통할 겁니다.

나의 .net 표준 프로젝트는 Nuget 패키지가 거의 없어 비교적 간단합니다.방금 바꿨습니다.

<TargetFramework>netstandard2.0</TargetFramework>

로.

<TargetFramework>**net461**</TargetFramework>.csproj 파일의 PropertyGroup 섹션에서 이 작업을 수행했습니다.Brandon Barkley의 댓글 답변에 감사드립니다.

csproj에서 아래에 추가

  <PropertyGroup>
    <TargetFrameworks>netcoreapp2.1;net471</TargetFrameworks>
  </PropertyGroup>

소스 파일을 몇 개밖에 가지고 있지 않았습니다.나에게 그것은 가장 잘 작동했습니다.

  1. Visual Studio 2022 마감
  2. 솔루션 폴더 이름 변경
  3. 원래 폴더 이름과 프로젝트 이름이 동일한 "WPF App(.NET Framework)" 유형의 새 Visual Studio 솔루션 생성
  4. 모든 *.xaml. *.xaml.cs 및 *.cs를 이전 프로젝트에서 새 프로젝트로 복사하고 *.sln, *.slroj 및 *.config를 건드리지 않습니다.
  5. 프로젝트 ->기존 항목 추가... 및 복사된 항목 추가
  6. 모든 특수 참조를 추가합니다.

그것은 불평 없이 모두 재건되었습니다.

언급URL : https://stackoverflow.com/questions/42623103/convert-net-core-to-net-framework

반응형