MSB3274 框架版本导入错误,我什至不想使用

问题描述 投票:0回答:1

我正在尝试对 .Net Framework v4.5.2 和 .net standard2.0 进行多目标定位,我的项目文件具有以下定位选项属性:

    <TargetFramework>v4.5.2</TargetFramework>
    <TargetFrameworks>v4.5.2;netstandard2.0</TargetFrameworks>

我没有看到我的项目中有任何引用框架 4.0 的地方,但我仍然得到:

[...]\MSBuild\Current\Bin\Microsoft.Common.CurrentVersion.targets(2203,5): 
    warning MSB3274: The primary reference "RestSharp, Version=105.2.3.0,
        Culture=neutral, processorArchitecture=MSIL" could not be resolved because it was
        built against the ".NETFramework,Version=v4.5.2" framework. This is a higher
        version than the currently targeted framework ".NETFramework,Version=v4.0".

后面是很多CS0234(未找到RestSharp内的类型或命名空间)

obj 文件夹包含一个名为“.NETFramework,Version=v4.0.AssemblyAttributes”的文件,因此出于某种原因 VS 认为我想以 4.0 为目标。 obj 文件夹还包含两个文件夹 netstandard2.0 和 v4.5.2 这让我很困惑,因为这里 MSBuild 似乎得到了我想要的东西。

我尝试清理解决方案并手动删除 obj 和 bin 文件夹。没有任何成功。

您知道这可能是从哪里产生的或者如何进一步调试吗?谢谢!

编辑:

刚刚在 VS2019 中打开解决方案时看到我得到:

恢复输入无效。发现重复的框架:“net40,net40”。输入文件:[myproject.csproj]

但是使用 myproject.csproj greping net40 没有匹配项。

c# .net msbuild visual-studio-2019 .net-framework-version
1个回答
0
投票

当构建版本的版本号高于 Visual Studio 版本预安装的版本时,通常会发生该错误。 请尝试编辑项目文件以忽略目标框架版本不匹配,如下所示,看看它是否可以解锁您。

<PropertyGroup>
  <ResolveAssemblyReferenceIgnoreTargetFrameworkAttributeVersionMismatch>true</ResolveAssemblyReferenceIgnoreTargetFrameworkAttributeVersionMismatch>
</PropertyGroup>
© www.soinside.com 2019 - 2024. All rights reserved.