【问题标题】:Reducing Package Dependencies in .net core/standard减少 .net core/standard 中的包依赖
【发布时间】:2017-07-29 13:22:40
【问题描述】:

我正在尝试将我在 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>

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

有人知道现在如何完成上述操作吗?提前致谢。

【问题讨论】:

  • 由于您的项目以 .NET Framework 为目标,您可能应该禁用 PublicSign,正如我在 blog.lextudio.com/… 中指出的那样,否则,.NET Framework 项目在使用它时可能会遇到验证错误。

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


【解决方案1】:

你可以设置

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-05
    • 2020-09-19
    • 2017-05-10
    • 2021-09-02
    • 2023-03-09
    • 1970-01-01
    相关资源
    最近更新 更多