引用针对多个框架C#WPF的项目时出现构建问题

问题描述

我正在将大型WPF解决方案的项目转换为SDK样式,并遇到了一些问题。

该解决方案很大,有多个项目(旧样式),所有项目都针对.net452,并且安装了一些nuget(某些由我制造),同时针对.net452和.netstandard2.1 一切似乎都工作正常,以某种方式nuget设法安装了针对.net452的正确版本。

我决定像解决方案一样,慢慢地将解决方案中的项目转换为以.net452和.netstandard2.1为目标的SDK样式。

这是问题开始的地方,到目前为止,一个项目已转换,并被多个其他项目引用。 在本地,一切似乎都可以正常构建和运行,但是当使用Azure DevOps(VS版本2019)构建解决方案时,有两种方案:

  1. 显示著名的错误消息:

    “错误CS0012:类型'Object'是在未引用的程序集中定义的。您必须添加对程序集'netstandard,Version = 2.1.0.0的引用”

  2. 它可以正常运行,但是在应用启动时崩溃:

    “无法加载文件或程序集'netstandard,Version = 2.1.0.0,Culture = neutral,PublicKeyToken = cc7b13ffcd2ddd51'或其依赖项之一。系统找不到指定的文件。”

我怀疑问题与引用SDK项目有关,看起来它以某种方式引用了.netstandard2.1而不是.net452。

我怀疑的原因是,如果在引用的项目上将targetframework设置为仅.net452,则一切正常。 Google为我提供了两种可能的解决方案,可以从参考中告诉项目使用什么框架:

<ProjectReference Include="..\..\..\..\foo\foo.csproj"
                  AdditionalProperties="TargetFramework=net452">
      <Project>{xxxxxx-xxxxxx-xxxxx-xxxxx-xxxxxxx}</Project>
      <Name>foo</Name>
</ProjectReference>

<ProjectReference Include="..\..\..\..\foo\foo.csproj">
      <SetTargetFramework>TargetFramework=net452</SetTargetFramework>
      <Project>{xxxxxx-xxxxxx-xxxxx-xxxxx-xxxxxxx}</Project>
      <<Name>foo</Name>
</ProjectReference>

这看起来好像没有做任何事情,问题仍然存在。 目前,我没有任何想法,我在这里寻求帮助。请让我知道我做错了什么,或者我还能尝试什么。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)