问题描述
我正在将大型WPF解决方案的项目转换为SDK样式,并遇到了一些问题。
该解决方案很大,有多个项目(旧样式),所有项目都针对.net452,并且安装了一些nuget(某些由我制造),同时针对.net452和.netstandard2.1 一切似乎都工作正常,以某种方式nuget设法安装了针对.net452的正确版本。
我决定像解决方案一样,慢慢地将解决方案中的项目转换为以.net452和.netstandard2.1为目标的SDK样式。
这是问题开始的地方,到目前为止,一个项目已转换,并被多个其他项目引用。 在本地,一切似乎都可以正常构建和运行,但是当使用Azure DevOps(VS版本2019)构建解决方案时,有两种方案:
-
显示著名的错误消息:
“错误CS0012:类型'Object'是在未引用的程序集中定义的。您必须添加对程序集'netstandard,Version = 2.1.0.0的引用”
-
它可以正常运行,但是在应用启动时崩溃:
“无法加载文件或程序集'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 (将#修改为@)