0

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

我通过制作具有更高版本号的包来执行替换包的正常过程,并尝试编译。由于重复引用,该构建尝试链接两者并在 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: No way to resolve conflict between "System.Threading.ThreadPool, Version=5.0.0.0, Culture =中性,PublicKeyToken=null”和“System.Threading.ThreadPool,版本=4.1.1.0,文化=中性,PublicKeyTokn=b03f5f7f11d50a3a”。任意选择“System.Threading.ThreadPool, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null”。[小路]

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

4

1 回答 1

1

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

在这种情况下,corefx 有说明如何做到这一点的文档。总结一下:

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

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

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

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

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

于 2019-05-24T17:20:46.090 回答