【问题标题】:Visual Studio: can reference Win8.1 project from Net4.5 test project?Visual Studio:可以从Net4.5测试项目中引用Win8.1项目吗?
【发布时间】: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


【解决方案1】:

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

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

【讨论】:

  • 该项目已经是解决方案的一部分。参考我发布的图片,App.Core 项目被所有其他以“Windows 8.1”作为后缀的项目引用,没有任何问题。问题是“Tests\MyProject.App.Core.Tests”无法引用它。我收到“无法添加对项目 'MyProject.App.Core' 的引用”错误。
  • 为了完整起见,我尝试了这个并收到消息“无法将项目'MyProject.App.Core'添加到解决方案,因为它已经是解决方案的成员。”
【解决方案2】:

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

【讨论】:

  • 我看了一下,但找不到任何解决参考问题的方法。
猜你喜欢
  • 2011-02-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-11-17
  • 1970-01-01
相关资源
最近更新 更多