【问题标题】:Can I have a project which uses .NET Framework 4.5.2 and another project with 4.6.2 in the same solution?我可以在同一个解决方案中拥有一个使用 .NET Framework 4.5.2 的项目和另一个使用 4.6.2 的项目吗?
【发布时间】:2018-04-03 19:14:30
【问题描述】:

我想在同一个 VS 解决方案中创建一个使用 .NET Framework 4.5.2 的项目和另一个使用 4.6.2 的项目的 VS 解决方案。

【问题讨论】:

  • 你试过创建它们吗?
  • 是的,引用不匹配,并说它安装在不同的目标框架上。
  • 一个项目是否引用了另一个项目中的某些内容?
  • 高版本的应该能够引用低版本的,但反过来不行。不过我很好奇,为什么你想要一个 4.5.2 和一个 4.6.2?为什么不对两者使用相同的框架?
  • 重要的是您的 EXE 项目的目标版本。它必须是更高版本,并确保机器具有所需的可用框架版本。类库可以等于或小于。

标签: c# .net


【解决方案1】:

在同一解决方案中使用不同版本的 .Net 的项目很好。当您在项目之间添加引用时,您可能会遇到问题。项目可以引用与引用项目版本相同或低于该版本的其他项目。即 .Net 4.5 项目可以引用 .Net 4.5 及更低版本的项目。

现在,如果您将 .Net 4.6.2 项目的引用添加到 .Net 4.5 项目,它将无法解析,或者换句话说,该引用根本不起作用。不幸的是,Visual Studio 不会阻止您(至少在撰写本文时),因此您需要寻找一些视觉线索来让您知道有什么不对劲。一个在 Visual Studio 项目下的引用列表中;您的参考资料旁边会显示一个感叹号,如下所示:

另一个提示是编译时警告,如下所示:

您需要密切注意这一点,因为如果您在引用项目中使用该程序集,这很可能会导致运行时问题,这可能会让人头疼。

【讨论】:

    【解决方案2】:

    是的,您可以将它们放在同一个解决方案中而不会产生影响。现在,如果您将相互引用的版本混合在一起,则会进入灰色区域。

    如果您的代码引用的库与您的目标框架相同或更少,通常都很好,但您还应该检查是否存在任何已知问题以确保确定。相反,当您的代码是具有更高目标框架的 ref 库时,您可能会遇到一些奇怪的事情和意外的错误。

    【讨论】:

      【解决方案3】:

      这取决于。我刚刚用 4.5.2 和 4.7.1 试了一下。只要引用到位,您就可以从较新版本(在我的例子中为 4.7.1)引用 4.5.2 框架代码中的项目。但是我认为它不会反过来起作用。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多