【发布时间】:2017-05-17 15:09:02
【问题描述】:
我的 Windows 应用包含 4 个面向 Windows 8.1 的项目和几个测试项目:
“...App.Core”项目以前是一个 Windows 8 项目,它也针对 .Net 4.5 框架。但正因为如此,有一些异步功能无法使用。
我们现在需要完整的异步功能,并且该项目已重新定位为仅适用于 Windows8.1。
但是,这样做破坏了“...App.Core.Tests”项目,这是一个 .Net 4.5 测试项目。它引用了 App.Core 项目,引用现在已损坏。
问题:有没有办法从测试项目中定位 Windows 8.1 项目(无需创建新的测试项目)?测试项目有相当多的测试、文件夹和 nuget 包引用,必须将其转移到新项目中会很痛苦。
如果我现在尝试添加引用,我会得到令人讨厌的简洁“无法添加对项目 'MyProject.App.Core' 的引用。”
此外,重新定位 App.Core 项目意味着更新其他 8.1 项目的目标并为每个项目重新安装每个 nuget 包。这就是为什么我宁愿用另一种方式解决这个问题。如果有的话。
.Net 4.5 项目能够引用 Windows 8.1 项目是否存在一些限制?或者我可能只是做错了什么。
更新
根据@PiLHA 下面的评论,我添加了 .NET 4.5.1 作为目标。它将库类型从“Windows 8.1”更改为“Portable”,但它中断了所有异步调用。
注意:我已将 Microsoft.Bcl v1.1.10、Microsoft.Bcl.Async v1.0.68 和 Microsoft.Bcl.Build v1.0.21 作为 nuget 包添加到“MyProject.App.Core”项目中。
【问题讨论】:
-
不能切换到4.5以上的版本(可能是4.5.1)?您是否尝试在项目属性中为另一个版本设置目标框架,然后恢复默认?您从 IDE 收到什么错误/不兼容消息?
-
@PiLHA VS 中这些项目的重定向过程有点残酷。大量卸载和重新安装 nuget 包,匹配版本,然后通过其他项目级联这些更新。也就是说,如果我尝试添加 4.5.1 作为对 Core 项目的引用,我将看看会发生什么。我认为我已经尝试过了,但它破坏了 WinRT 项目参考...
-
引用被破坏的原因有很多。从非常简单的版本不匹配到因为 CLR 不匹配而非常痛苦的版本。 95%的问题都是简单的问题。但是,只要您不告诉我们关于构建失败的所有信息,您就不会给任何人发布简单答案的机会。
-
@HansPassant “参考”下的项目参考有一个黄色三角形。我不记得确切的构建错误,但我相信这是您的项目尝试引用它看不到的命名空间时得到的标准错误(即,有很多错误)。在我最初尝试修复该问题时,我右键单击该引用,将其删除并重新添加它。现在的错误是“无法添加对项目'MyProject.App.Core'的引用”。
-
@PiLHA 查看我的问题更新
标签: visual-studio visual-studio-2015 windows-8.1 .net-4.5