你的项目没有引用".NETFramework,Version=v4.5"框架。请添加对".NETFramework,Version=v4.5"的引用。

8

Visual Studio版本: 2019 摘要: 我在同一文件夹中有两个框架项目,一个使用4.7框架,引用本地Nuget包;另一个使用4.5框架,引用本地Assembly库。当运行4.7项目后再运行4.5项目时,就会出现以下问题:

问题: 严重性 代码 描述 项目文件 行 抑制状态 错误 您的项目没有引用“.NETFramework,Version=v4.5”框架。请在“TargetFrameworks”属性中添加对“.NETFramework,Version=v4.5”的引用,并重新运行NuGet还原。

4.7 项目

  <ItemGroup>
   <PackageReference Include="Microsoft.Xaml.Behaviors.Wpf" Version="1.1.19" />
</ItemGroup>

4.5 项目

<Reference Include="Microsoft.Xaml.Behaviors.Wpf" xmlns="">
  <HintPath>..\resources\Assembilies\Microsoft.Xaml.Behaviors.dll</HintPath>
</Reference>

重现步骤:

  1. 使用NuGet引用运行4.7项目

  2. 使用程序集引用运行4.5项目

  3. 将会出现报告的问题

如何解决这个问题


看起来很合理,.net框架仅支持向后兼容性。在第一次运行时,Microsoft.Xaml.Behaviors.dll在4.7中生成。它在第二次运行时不被覆盖,所以它会崩溃。 - B. Lec
为什么你不能在4.7中升级第二个项目? - B. Lec
@B.Lec 清理 bin 和 Obj 可以解决问题,但需要在构建开始之前调用。 - max
@B.Lec 不,我需要这些项目在两个框架中。 - max
它们为什么在同一个文件夹中? - B. Lec
@B.Lec 这是我的要求,我需要将它保存在同一个文件夹中。 - max
1个回答

16

如果有人在一个旧项目上遇到问题,解决方案最终是删除 bin 和 obj 文件夹以及解决方案的 .vs 目录。


1
这对我很有帮助:我从错误中提到的每个程序集的源文件夹中删除了.vs、bin和obj(而不是整个解决方案)。 - Vadim

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接