Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.net 生成错误“您是否缺少using指令或程序集引用”-目标框架版本4_.net_.net 4.0_.net 4.5_Paymill - Fatal编程技术网

.net 生成错误“您是否缺少using指令或程序集引用”-目标框架版本4

.net 生成错误“您是否缺少using指令或程序集引用”-目标框架版本4,.net,.net-4.0,.net-4.5,paymill,.net,.net 4.0,.net 4.5,Paymill,我有一个项目使用nuget的库 我的项目的目标框架目前是4.0 我正在使用库中的对象和方法,我得到了intellisense等 然而,当我构建时,编译失败 找不到类型或命名空间。是否缺少using指令或程序集引用 如果我将项目的目标框架更改为4.5,它将编译 有办法解决这个问题吗 编辑 作为一个具体的例子,下面是在一个特定情况下重现此问题的步骤 文件->新项目 新的控制台应用程序 将目标框架设置为4.0 Nuget安装 使用Paymill包装中的一种类型。例如: using PaymillWra

我有一个项目使用nuget的库 我的项目的目标框架目前是4.0

我正在使用库中的对象和方法,我得到了intellisense等

然而,当我构建时,编译失败

找不到类型或命名空间。是否缺少using指令或程序集引用

如果我将项目的目标框架更改为4.5,它将编译

有办法解决这个问题吗

编辑

作为一个具体的例子,下面是在一个特定情况下重现此问题的步骤

文件->新项目 新的控制台应用程序 将目标框架设置为4.0

Nuget安装

使用Paymill包装中的一种类型。例如:

using PaymillWrapper.Models;
using PaymillWrapper.Service;  

public class MyClass
{
    private readonly PaymentService _paymentService;
}
VS不会抱怨。 编撰

接收错误:

找不到类型或命名空间名称“ClientService”是否缺少using指令或程序集引用


答案在于构建输出:

2> C:\Windows\Microsoft.NET\Framework\v4.0.30319\Microsoft.Common.targets1605,5:警告MSB3274:无法解析主引用PaymillWrapper,因为它是根据.NETFramework,版本=v4.5 Framework生成的。这是一个高于当前目标framework的版本。NETFramework,版本=v4.0

2> C:\Windows\Microsoft.NET\Framework\v4.0.30319\Microsoft.Common.targets1605,5:警告MSB3268:无法解析主引用PaymillWrapper,因为它间接依赖于Framework程序集System.NET.Http,版本=4.0.0.0,区域性=中性,PublicKeyToken=b03f5f7f11d50a3a,无法在当前目标框架中解析。NETFramework,版本=v4.0。若要解决此问题,请删除参考PaymillWrapper或将应用程序重新定位到包含System.Net.Http、version=4.0.0.0、Culture=neutral、PublicKeyToken=b03f5f7f11d50a3a的框架版本

换句话说,NuGet包使用了对.NET4.5的引用,因此您只能在.NET4.5+项目上使用它

您可能想询问Paymill Wrapper的作者,看看他们是否可以发布一个以.NET4为目标的版本

请注意,偶数表示:

依赖关系 -.NETFramework 4.5


根据Jon Skeet的回答,问题实际上是图书馆的问题

它是根据.NET4.5构建的


我提交了一个解决方案。

我怀疑错误消息显示了找不到的实际类型或命名空间。这些信息对这个问题至关重要,确实如此。但是类型在我引用的库中。更改目标框架可以解决此问题。。。但对我来说,这似乎不是一个解决方案?它是哪个库?可能有不同的版本用于不同的目标?你为什么要持有我们提供的相关信息?这应该很容易复制,但不是在你隐藏信息的时候。因为我似乎吸引了下层选民的愤怒——你的意思是因为我的问题没有足够的信息。所讨论的目标库是相关的,找不到的类型也是相关的。既然你已经发布了更多的信息,我可以尝试重现这个问题。我不明白你以前为什么这么不愿意这样做,或者你为什么认为人们对你模糊的问题投了反对票是不合理的。@alexjamesbrown:这是针对需要.NET 4.5的图书馆的,但我们不知道所讨论的图书馆是否需要.NET 4.5。这可能是一个完全不同的、模糊的问题。由于没有包括任何信息,你使人们更难帮助你。我也这么想。只是想澄清一下,没有特别清楚地说明问题well@alexjamesbrown:那么您是否已经注意到生成错误?如果是,你为什么不在问题中提及?为什么你认为导致问题的NuGet软件包不相关?