라이브러리를 개발 중이며 여러 버전의 .NET Framework 용 NuGet 패키지를 만들고 싶습니다. 이 작업을 수행 할 전체 목록이있는 기사를 찾지 못했습니다.여러 .NET Framework 버전 용 NuGet 패키지 만들기
내가 시도한 첫 번째 옵션은 Release_Net45와 같은 구성 집합을 만드는 것입니다. 그런 다음 csproj를 편집하여 출력 디렉토리 (lib/net45 등)를 수정하고 각 구성에 대한 타겟 프레임 워크 버전을 수정했습니다. 그런 다음 각 구성을 구축했습니다. 그 후 나는 nuget 팩을 실행했고 패키지는 이미 패키지에 들어 있기 때문에 하나의 dll이 추가되지 않았다는 경고와 함께 성공적으로 생성되었습니다 ...
그런 다음 패키지의 TargetFrameworks 요소와 요소를 포함하도록 csproj를 편집하려고했습니다 메타 데이터를 Release 구성에 해당하는 PropertyGroup에 추가합니다. 편집 후 프로젝트를 다시로드하면 솔루션 탐색기에 종속성이라는 새 그룹이 나타납니다. msbuild/t : pack/p : Configuration = Release in Developer Command Prompt를 사용하여 패키지를 만들려고했지만 패키지 대상이 없다는 오류로 끝났습니다. 이를 수정하기 위해 NuGet.Build.Tasks.Pack 패키지를 추가 한 다음 패키지가 빌드되었습니다. 그러나 구성 관리자에서 구성을 보았을 때 갑자기 구성이 손상되었습니다.
내가 여러 대상 프레임 워크에 대한 패키지를 설정하는 등 고통스러운 :(이 작업을 수행하는 올바른 방법은 무엇입니까 될 것으로 기대하지 않았다?이 작업에 대한 완전한 가이드가 있습니까?
설명해 주셔서 감사합니다. 그렇다면 여러 대상 프레임 워크에 맞게 .NET Framework 용 프로젝트를 설정하는 올바른 방법은 무엇입니까? – Maxim
현재 공개적으로 문서화 된 것은 없습니다. 게시 한 코드를'xyz.csproj' 파일에 복사하고 Visual Studio에서 열어서 얻을 수 있습니다. 고전적인 csproj에서 sdk 기반 csproj 로의 마이그레이션에 대한 좋은 마이그레이션 스토리도 없습니다. 대부분 csproj 파일을 손으로 편집하고 (무엇을해야 할지를 아는 것이 두렵습니다). –
하지만 실제로 잘 작동합니다. Newtonsoft.Json도이 접근 방식을 사용하고 있으며 심지어 사용자 지정 논리를 사용하여 이식 가능한 클래스 라이브러리를 구축 할 수도 있습니다. –