.net 如何解决奇怪的nuget依赖

8wtpewkr  于 2023-11-20  发布在  .NET
关注(0)|答案(1)|浏览(207)

我已经构建了一个多目标Nuget,我称之为“mycompany.XP.Desktop”*,我尝试将其包含在遗留WPF(FW 4.7.2)项目中。Nuget包含对netstandard 2.0的支持,它与FW 4.7.2兼容。但是当我添加包时,nuget失败并显示以下消息:

  1. Install failed (project: wpfClient_fw472, package: mycompany.XP.Desktop v1.0.0-beta.20) Could not install package 'Microsoft.AspNetCore.WebUtilities 8.0.0-rc.2.23480.2'. You are trying to install this package into a project that targets '.NETFramework,Version=v4.7.2', but the package does not contain any assembly references or content files that are compatible with that framework. For more information, contact the package author.

字符串
由于我一般不引用预发布包,特别是Microsoft.AspNetCore.WebUtilities包,我假设它必须是一个可传递依赖项,所以我运行dotnet list package --include-transitive命令,得到了以下内容:

  1. Project 'mycompany.XP.Desktop' has the following package references
  2. [netstandard2.0]:
  3. Top-level Package Requested Resolved
  4. > Microsoft.AspNetCore.DataProtection 7.0.5 7.0.5
  5. > Microsoft.AspNetCore.SignalR.Client 7.0.10 7.0.10
  6. > Microsoft.Extensions.Hosting 6.0.0 6.0.0
  7. > NETStandard.Library (A) [2.0.3, ) 2.0.3
  8. Transitive Package Resolved
  9. > Azure.Core 1.10.0
  10. > Microsoft.AspNetCore.Authentication.Abstractions 2.2.0
  11. > Microsoft.AspNetCore.Authentication.Core 2.2.0
  12. > Microsoft.AspNetCore.Authorization 2.2.0
  13. > Microsoft.AspNetCore.Authorization.Policy 2.2.0
  14. > Microsoft.AspNetCore.Connections.Abstractions 7.0.10
  15. > Microsoft.AspNetCore.Cryptography.Internal 7.0.5
  16. > Microsoft.AspNetCore.DataProtection.Abstractions 7.0.5
  17. > Microsoft.AspNetCore.Hosting.Abstractions 2.2.0
  18. > Microsoft.AspNetCore.Hosting.Server.Abstractions 2.2.0
  19. > Microsoft.AspNetCore.Http 2.2.0
  20. > Microsoft.AspNetCore.Http.Abstractions 2.2.0
  21. > Microsoft.AspNetCore.Http.Connections.Client 7.0.10
  22. > Microsoft.AspNetCore.Http.Connections.Common 7.0.10
  23. > Microsoft.AspNetCore.Http.Extensions 2.2.0
  24. > Microsoft.AspNetCore.Http.Features 2.2.0
  25. > Microsoft.AspNetCore.Mvc.Abstractions 2.2.0
  26. > Microsoft.AspNetCore.Mvc.Core 2.2.5
  27. > Microsoft.AspNetCore.ResponseCaching.Abstractions 2.2.0
  28. > Microsoft.AspNetCore.Routing 2.2.0
  29. > Microsoft.AspNetCore.Routing.Abstractions 2.2.0
  30. > Microsoft.AspNetCore.SignalR.Client.Core 7.0.10
  31. > Microsoft.AspNetCore.SignalR.Common 7.0.10
  32. > Microsoft.AspNetCore.SignalR.Protocols.Json 7.0.10
  33. > Microsoft.AspNetCore.WebUtilities 2.2.0
  34. > Microsoft.Azure.Functions.Worker.Core 1.14.0
  35. > Microsoft.Bcl.AsyncInterfaces 7.0.0
  36. > Microsoft.CSharp 4.5.0
  37. > Microsoft.DotNet.PlatformAbstractions 2.1.0
  38. > Microsoft.Extensions.Configuration 6.0.0
  39. > Microsoft.Extensions.Configuration.Abstractions 7.0.0
  40. > Microsoft.Extensions.Configuration.Binder 6.0.0
  41. > Microsoft.Extensions.Configuration.CommandLine 6.0.0
  42. > Microsoft.Extensions.Configuration.EnvironmentVariables 6.0.0
  43. > Microsoft.Extensions.Configuration.FileExtensions 6.0.0
  44. > Microsoft.Extensions.Configuration.Json 6.0.0
  45. > Microsoft.Extensions.Configuration.UserSecrets 6.0.0
  46. > Microsoft.Extensions.DependencyInjection 7.0.0
  47. > Microsoft.Extensions.DependencyInjection.Abstractions 7.0.0
  48. > Microsoft.Extensions.DependencyModel 2.1.0
  49. > Microsoft.Extensions.Features 7.0.10
  50. > Microsoft.Extensions.FileProviders.Abstractions 7.0.0
  51. > Microsoft.Extensions.FileProviders.Physical 6.0.0
  52. > Microsoft.Extensions.FileSystemGlobbing 6.0.0
  53. > Microsoft.Extensions.Hosting.Abstractions 7.0.0
  54. > Microsoft.Extensions.Logging 7.0.0
  55. > Microsoft.Extensions.Logging.Abstractions 7.0.1
  56. > Microsoft.Extensions.Logging.Configuration 6.0.0
  57. > Microsoft.Extensions.Logging.Console 6.0.0
  58. > Microsoft.Extensions.Logging.Debug 6.0.0
  59. > Microsoft.Extensions.Logging.EventLog 6.0.0
  60. > Microsoft.Extensions.Logging.EventSource 6.0.0
  61. > Microsoft.Extensions.ObjectPool 2.2.0
  62. > Microsoft.Extensions.Options 7.0.1
  63. > Microsoft.Extensions.Options.ConfigurationExtensions 6.0.0
  64. > Microsoft.Extensions.Primitives 7.0.0
  65. > Microsoft.IdentityModel.Abstractions 6.25.1
  66. > Microsoft.IdentityModel.JsonWebTokens 6.25.1
  67. > Microsoft.IdentityModel.Logging 6.25.1
  68. > Microsoft.IdentityModel.Tokens 6.25.1
  69. > Microsoft.Net.Http.Headers 2.2.8
  70. > Microsoft.NETCore.Platforms 1.1.0
  71. > Microsoft.NETCore.Targets 1.1.0
  72. > Microsoft.Win32.Registry 5.0.0
  73. > Newtonsoft.Json 9.0.1
  74. > runtime.native.System 4.0.0
  75. > System.AppContext 4.1.0
  76. > System.Buffers 4.5.1
  77. > System.Collections 4.0.11
  78. > System.Collections.Immutable 5.0.0
  79. > System.ComponentModel.Annotations 5.0.0
  80. > System.Diagnostics.Debug 4.0.11
  81. > System.Diagnostics.DiagnosticSource 7.0.0
  82. > System.Diagnostics.EventLog 6.0.0
  83. > System.Diagnostics.Tools 4.0.1
  84. > System.Dynamic.Runtime 4.0.11
  85. > System.Formats.Asn1 7.0.0
  86. > System.Globalization 4.0.11
  87. > System.IdentityModel.Tokens.Jwt 6.25.1
  88. > System.IO 4.1.0
  89. > System.IO.FileSystem 4.0.1
  90. > System.IO.FileSystem.Primitives 4.0.1
  91. > System.IO.Pipelines 7.0.0
  92. > System.Linq 4.1.0
  93. > System.Linq.Expressions 4.1.0
  94. > System.Memory 4.5.5
  95. > System.Memory.Data 1.0.1
  96. > System.Numerics.Vectors 4.5.0
  97. > System.ObjectModel 4.0.12
  98. > System.Reflection 4.1.0
  99. > System.Reflection.Emit 4.0.1
  100. > System.Reflection.Emit.ILGeneration 4.0.1
  101. > System.Reflection.Emit.Lightweight 4.0.1
  102. > System.Reflection.Extensions 4.0.1
  103. > System.Reflection.Primitives 4.0.1
  104. > System.Reflection.TypeExtensions 4.1.0
  105. > System.Resources.ResourceManager 4.0.1
  106. > System.Runtime 4.3.0
  107. > System.Runtime.CompilerServices.Unsafe 6.0.0
  108. > System.Runtime.Extensions 4.1.0
  109. > System.Runtime.Handles 4.0.1
  110. > System.Runtime.InteropServices 4.1.0
  111. > System.Runtime.InteropServices.RuntimeInformation 4.0.0
  112. > System.Runtime.Serialization.Primitives 4.1.1
  113. > System.Security.AccessControl 6.0.0
  114. > System.Security.Cryptography.Cng 5.0.0
  115. > System.Security.Cryptography.Pkcs 7.0.0
  116. > System.Security.Cryptography.Xml 7.0.1
  117. > System.Security.Principal.Windows 5.0.0
  118. > System.Text.Encoding 4.3.0
  119. > System.Text.Encoding.Extensions 4.0.11
  120. > System.Text.Encodings.Web 7.0.0
  121. > System.Text.Json 7.0.3
  122. > System.Text.RegularExpressions 4.1.0
  123. > System.Threading 4.0.11
  124. > System.Threading.Channels 7.0.0
  125. > System.Threading.Tasks 4.0.11
  126. > System.Threading.Tasks.Extensions 4.5.4
  127. > System.Xml.ReaderWriter 4.0.11
  128. > System.Xml.XDocument 4.0.11
  129. > mycompany.XP.Auth 1.0.0-beta.19
  130. > mycompany.XP.Auth.Abstractions 1.0.0-beta.19
  131. > mycompany.XP.Auth.TokensAndCredentials 1.0.0-beta.19
  132. > mycompany.XP.Browsers 1.0.0-beta.19
  133. > mycompany.XP.Caching 1.0.0-beta.19
  134. > mycompany.XP.Caching.Abstractions 1.0.0-beta.19
  135. > mycompany.XP.Caching.DataProtection 1.0.0-beta.19
  136. > mycompany.XP.Common 1.0.0-beta.19
  137. > mycompany.XP.Configuration 1.0.0-beta.19
  138. > mycompany.XP.DependencyInjection 1.0.0-beta.19
  139. > mycompany.XP.Diagnostics 1.0.0-beta.19
  140. > mycompany.XP.Documentation 1.0.0-beta.19
  141. > mycompany.XP.DynamicEntities 1.0.0-beta.19
  142. > mycompany.XP.Identity 1.0.0-beta.19
  143. > mycompany.XP.Logging 1.0.0-beta.19
  144. > mycompany.XP.Logging.Abstractions 1.0.0-beta.19
  145. > mycompany.XP.OAuth2 1.0.0-beta.19
  146. > mycompany.XP.Serialization 1.0.0-beta.19
  147. > mycompany.XP.Streaming 1.0.0-beta.19
  148. > mycompany.XP.StringValues 1.0.0-beta.19
  149. > mycompany.XP.Web 1.0.0-beta.19
  150. > mycompany.XP.Web.Abstractions 1.0.0-beta.19
  151. > mycompany.XP.Web.Http 1.0.0-beta.19
  152. > mycompany.XP.Web.Services 1.0.0-beta.19


我仔细研究了我所有的36个nuget项目,我发现一个-mycompany.XP.Identity-通过引用Microsoft.AspnetCore.Http传递依赖于Microsoft.AspNetCore.WebUtilities(它提供了注册IHttpContextAccessor服务的扩展方法)。所以,它对那个nuget有依赖性是很好的,但我就是不明白为什么nuget解决了它需要包括最新的候选版本,而不是2.2.0版本。
我甚至尝试在mycompany.XP.Identity项目中显式地包含2.2.0版本,重新构建nugets,然后再试一次。但是同样的事情仍然发生,nuget仍然抱怨由于不兼容,它不能包含RC版本。
有没有什么设置是我不小心弄反的,让nuget变成这样的?
我该如何解决这类掘金问题?

  • 我的公司的实际名称被替换为“我的公司”
rlcwz9us

rlcwz9us1#

原来这只是Rider的行为不端。我测试了使用VS 2022将我的Nuget添加到项目中,并解决了适当的依赖关系-不包括任何预发布的版本。可能是Rider不擅长旧堆栈,如FW 4.7.2。我会将其作为bug提交给JetBrains。

相关问题