减少.net核心/标准

时间:2017-03-08 19:36:47

标签: c# .net .net-core csproj

我试图将我在VS2015 / .net内核中构建的一些库升级到VS2017。而project.json> * .csproj转换相当顺利,我在尝试使我的库不依赖于完整的框架而只依赖于我真正需要的软件包时遇到了麻烦。

我以前做过的事情记录在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>

为简洁起见,我省略了一些属性(描述,作者等)。

有没有人知道现在如何完成上述工作?提前谢谢。

1 个答案:

答案 0 :(得分:4)

您可以设置

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

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