【问题标题】:How do I exclude a dependency of Microsoft.NETCore.APP如何排除 Microsoft.NETCore.APP 的依赖项
【发布时间】:2019-05-24 16:39:30
【问题描述】:

如何排除 Microsoft.NETCore.App 的依赖项,以便将其替换为本地编译(错误修复)版本。

我通过制作一个更高版本号的包来执行替换包的正常过程,并尝试编译。由于重复引用,该构建尝试链接 both 并在 CS0433 的编译步骤中死亡。

<Project Sdk="Microsoft.NET.Sdk">
   <PropertyGroup>
       <OutputType>Exe</OutputType>
       <TargetFramework>netcoreapp2.1</TargetFramework>
   </PropertyGroup>

   <ItemGroup>
       <ProjectReference Include="..\System.Threading.ThreadPool\System.Threading.ThreadPool.csproj"/>
       <ProjectReference Update="..\System.Threading.ThreadPool\System.Threading.ThreadPool.csproj"/>
   </ItemGroup>
</Project>

编译错误:

C:\Program FFiles\dotnet\sdk\2.1.604\Microsoft.Common.CurrentVersion.targets(2114,5):警告 MSB3243:无法解决“System.Threading.ThreadPool, Version=5.0. 0.0,Culture=neutral,PublicKeyToken=null”和“System.Threading.ThreadPool,版本=4.1.1.0,Culture=neutral,PublicKeyTokn=b03f5f7f11d50a3a”。任意选择“System.Threading.ThreadPool, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null”。 [路径]

Program.cs(17,13):错误 CS0433:“System.Threading.ThreadPool,版本=4.1.1.0,Culture=neutral,PublicKeyToken=b03f5f7f11d50a3a”和“System.Threading”中都存在“ThreadPool”类型。线程池,版本=5.0.0.0,文化=中性,PublicKeyToken=null' [路径]

【问题讨论】:

    标签: c# .net-core csproj packagereference


    【解决方案1】:

    我假设您编译 corefx 以生成更新的 System.Threading.ThreadPool 包?

    在这种情况下,corefx has docs 说明了如何执行此操作。总结一下:

    1. 使用您的修复程序构建 corefx

    2. 获取您构建的 corefx 的版本号

    3. 使用步骤 2 中的版本将 PackageReference 添加到 Microsoft.Private.CoreFx.NETCoreApp

    4. 添加指向您构建的 corefx 的 bin 目录的 nuget.config。

    5. 恢复并发布您的项目以获取自定义修改的 corefx。

    【讨论】:

    • 不,我没有构建新的 corefx。我构建了一个 Visual Studio 项目,它从头重新实现要替换的 dll。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-04
    • 1970-01-01
    • 2012-02-25
    • 2017-09-08
    • 1970-01-01
    相关资源
    最近更新 更多