2017-11-01 7 views
0

나는 Nuget 패키지로 게시하려는 .NET Standard 1.6 라이브러리 몇 개를 만듭니다. 그들은 첫 번째 두 개와 동일한 솔루션에서 세 번째 프로젝트 인 공통 라이브러리를 공유합니다. 공유 라이브러리는 그 자체만으로 가치가 없지만 사람들이 동일한 프로젝트에서이 두 라이브러리 라이브러리를 모두 사용하기를 원한다면 공유 라이브러리를 Nuget 패키지로 게시해야한다고 가정합니다. 내가 모르는 경우 버전 불일치 문제가있을 때 "충돌"하거나 적절하게 경고하지 않는 동일한 공유 라이브러리의 여러 복사본이 걱정됩니다.동일한 솔루션의 다른 nuget 패키지 프로젝트에서 nuget 패키지 프로젝트 참조

공유 라이브러리가 Nuget 패키지 여야 함을 고치겠습니다. 공유 라이브러리를 Nuget 패키지로 참조 할 수있는 방법이 있습니까?하지만이 솔루션에서 2 개의 주요 라이브러리를 개발/디버깅 할 때 프로젝트 참조 인 것처럼 사용합니까? Nuget.org에 게시하고 디버깅 세션에서 변경된 버전을 사용하기 전에 패키지가 Nuget.org 시스템을 통해 전파 될 때까지 기다려야합니다. 실제로 디버그 세션은 느려지 게됩니다. 이것들은 .NET Standard 프로젝트입니다. How to reference related projects in the same solution when Nuget packages are the required output을 찾았지만 .NET Standard (팩 중에 오류가 발생 함)와 작동하지 않는 것으로 보이고 .NET Standard가 nuspec 파일을 더 이상 사용하지 않으면 문제가 발생할 수도 있습니다.

+0

이 문제에 대한 업데이트 :

<Project> <PropertyGroup> <TargetFramework>netstandard2.0</TargetFramework> <TargetsForTfmSpecificBuildOutput>$(TargetsForTfmSpecificBuildOutput);IncludeP2PAssets</TargetsForTfmSpecificBuildOutput> </PropertyGroup> <ItemGroup> <ProjectReference Include="..\testprivatelib\testprivatelib.csproj" PrivateAssets="All" /> </ItemGroup> <Target Name="IncludeP2PAssets"> <ItemGroup> <BuildOutputInPackage Include="$(OutputPath)\testprivatelib.dll" /> </ItemGroup> </Target> </Project> 

소스 코드 출처 :

게다가, dasMulli은 관련된 추가하고 사용자 정의 목표를 접선하여이 작업을 수행 할 수있는 간단한 방법을 제공하고있다? 이 문제를 해결 했습니까? 그렇지 않은 경우이 문제에 대한 최신 정보를 알려 주시기 바랍니다. –

답변

0

또한 nuspec 파일을 사용하지 않는 .NET Standard가 더 이상 문제를 일으키지 않을지 확실하지 않습니다.

여전히 .nuspec 파일을 사용하고 이전 학교 nuget packa .nuspec을 사용하는 .NET 표준은이 문제를 해결합니다. 문서 dotnet pack 당으로

: 포장 된 프로젝트의

NuGet 종속성은 .nuspec 파일에 추가됩니다, 그래서 패키지가 설치 될 때 제대로 해결하고 있습니다. 프로젝트 간 프로젝트 참조는 프로젝트 내에 패키지되지 않습니다. 현재 프로젝트 간 종속성이있는 경우 프로젝트 당 패키지가 있어야합니다..

그래서, NuGet 패키지 프로젝트 간 참조를 포함, 당신은 수동으로 .nuspec 파일을 유지하고 종속를 추가해야합니다. 세부 정보는 Create .NET Standard packages with Visual Studio 2015을 참조하십시오. "donet pack" is not including project references