问题描述
我试图引用一个明显是 .NetStandard2.0
的 nuget 包.我们拥有这个包的源代码并将其写入目标 .netstandard.我们确实有一个 CI 管道,因此当我们推送此代码时,它会构建和发布 nuget 包.当我尝试将生成的 nuget 包引用到当前的 .netCore 应用程序中时,出现以下错误:
I am trying to reference a nuget package which is clearly .NetStandard2.0
. We own the source code for this package and written it to target .netstandard. We do have a CI pipeline so that when we push this code, it builds and releases the nuget package. When I try to reference the resulting nuget package into my current .netCore application, i get following error:
是使用.NETFramework,Version=v4.6.1"而不是项目目标框架.NETCoreApp,Version=v2.1"恢复的.此包可能与您的项目不完全兼容.
这对我来说没有任何意义.到目前为止,我已经尝试了以下调试步骤:
That does not make any sense to me. So far I have tried following debugging steps:
- 直接引用源代码作为对我项目的项目引用.效果很好.
- 在
dotpeek
中分析生成的 nuget 包,以确保它实际上是一个 .netstandard 包,并且确实如此.
- Referenced the source code directly as a project reference to my project. Which did work all fine.
- Analyzing resulting nuget package in
dotpeek
to make sure that it in fact is a .netstandard package and it is.
不确定是什么让它认为它在任何时候都是针对的.下面是我的 .csproj 配置的样子
Not sure what makes it think that it was targeting at any point. below is how my .csproj configuration looks like
<TargetFramework>netstandard2.0</TargetFramework>
不确定此处是否有任何其他配置块重要,但如果您需要更多信息,请告诉我.有什么想法吗?
Not sure if any other config block matters here but let me know if you need more info on this. Any ideas?
推荐答案
我遇到了一个类似的问题,我通过 Azure Artifacts 发布自己的 NetStandard2.0 包,然后尝试在 netcore 应用程序中使用它.
I ran in to a similar issue where I was publishing my own NetStandard2.0 package via Azure Artifacts and then attempting to consume it in a netcore application.
p>
原来问题在于我将我的包命名为与现有 NuGet 包相同.我的 Azure Artifacts nuget feed 在 Visual Studio 中配置正确,但是当它尝试安装包时,它首先尝试默认的 NuGet feed,然后选择另一个(恰好是 NetFramework)而不是我的.
It turned out that the problem was that I had named my package the same as an existing NuGet package. My Azure Artifacts nuget feed was configured correctly in Visual Studio, but when it attempts to install the package it tries the default NuGet feed first and picks up the other one (which happened to be NetFramework only) rather than mine.
一旦我将我的包重命名为唯一(我只是添加了我自己的命名空间)并重新发布,它就一切正常了.
Once I renamed my package to be unique (I just added my own namespace) and re-published it all worked properly.
我想这可能不是每个人的问题,但它是我的问题.
I guess that might not be the issue for everyone but it was for me.
这篇关于使用 '.NETFramework,Version=v4.6.1' 而不是项目目标框架'的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!