减少.net核心/标准中的程序包依赖关系

问题描述:

我试图将我在VS2015/.net核心中构建的一些库升级到VS2017。当project.json> * .csproj转换进行得相当顺利时,我遇到了麻烦,试图使我的库不依赖于完整的框架,而只依赖于我真正需要的包。减少.net核心/标准中的程序包依赖关系

我以前没在https://docs.microsoft.com/en-us/dotnet/articles/core/deploying/reducing-dependencies

,这是工作的罚款证明什么。升级后,我的“依赖项”安装了SDK nuget,无法删除。

Project.csproj包含以下内容:

<Project Sdk="Microsoft.NET.Sdk"> 
    <PropertyGroup> 
     <AssemblyTitle>DDS.Core.Commons.Annotations</AssemblyTitle> 
     <VersionPrefix>17.03.08.1526</VersionPrefix> 
     <TargetFrameworks>netstandard1.6;net46</TargetFrameworks> 
     <AssemblyName>DDS.Core.Commons.Annotations</AssemblyName> 
     <PackageId>$(AssemblyName)</PackageId> 
     <RootNamespace>DDS.Core.Commons.Annotations</RootNamespace> 
    </PropertyGroup> 

    <PropertyGroup Condition=" '$(Configuration)' == 'Debug' "> 
     <TreatWarningsAsErrors>true</TreatWarningsAsErrors> 
     <DebugType>full</DebugType> 
    </PropertyGroup> 

    <PropertyGroup Condition=" '$(Configuration)' == 'Release' "> 
     <AllowUnsafeBlocks>true</AllowUnsafeBlocks> 
     <PublicSign>true</PublicSign> 
     <DebugType>portable</DebugType> 
     <GenerateDocumentationFile>true</GenerateDocumentationFile> 
     <GeneratePackageOnBuild>True</GeneratePackageOnBuild> 
    </PropertyGroup> 
</Project> 

予省略了一些性质(描述,作者,等等)为简洁。

做任何人有多么以上,现在可以完成的任何想法?提前致谢。

+0

随着项目面向.NET框架,你应该禁用PublicSign,正如我在https://blog.lextudio.com/tips-for-net-nuget-package-authors-august-2017-48f07604e4a0所示。否则,使用.NET Framework项目时可能会遇到验证错误。 –

您可以设置

<PropertyGroup> 
    <DisableImplicitFrameworkReferences>true</DisableImplicitFrameworkReferences> 
</PropertyGroup> 

在你的.csproj。这告诉SDK不隐式引用NETStandard.Library或Microsoft.NETCore.App。

+0

这个伎俩......谢谢! – CheloXL