Visual Studio:可以从Net4.5测试项目中引用Win8.1项目吗?

时间:2017-05-17 15:09:03

标签: visual-studio visual-studio-2015 windows-8.1 .net-4.5

我的Windows应用程序包含4个面向Windows 8.1的项目和几个测试项目:

Screenshot of solution projects

“... App.Core”项目以前是Windows 8项目,也是针对.Net 4.5框架的。但正因为如此,有一些无法使用的异步功能。

我们现在需要完全异步能力,并且该项目仅针对Windows8.1重新定位。

然而,这样做打破了“... App.Core.Tests”项目,这是一个.Net 4.5测试项目。它引用了App.Core项目,引用现已破坏

问题 :有没有办法从Test项目中定位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”,但它打破了所有异步调用。

reference change

注意:我将Microsoft.Bcl v1.1.10,Microsoft.Bcl.Async v1.0.68和Microsoft.Bcl.Build v1.0.21作为nuget包添加到“MyProject.App.Core”项目中。

2 个答案:

答案 0 :(得分:2)

试试这个:在解决方案资源管理器窗口中右键单击解决方案文件,单击“添加”,然后选择“现有项目”。

enter image description here

一旦项目成为解决方案的一部分,您就可以添加项目参考。

答案 1 :(得分:2)

查看项目文件本身,看看引用组中是否有奇怪的东西。以下链接Cannot Edit or Add Path to Reference File in Visual Studio 2010讨论了手动编辑项目文件。我通常只是在文本编辑器中打开项目文件。查找ItemGroup,项目的引用将包含在该组中。您也可以尝试以这种方式手动添加引用。