代码之家  ›  专栏  ›  技术社区  ›  Thomas

使用更新的目标框架。a中子项目的净标准。net framework解决方案

  •  2
  • Thomas  · 技术社区  · 8 年前

    每当我使用VS2017创建新的解决方案时,我通常会选择一个较新的框架作为目标(目前最常见的是4.6.1)。

    现在,当我创建一个。解决方案中的dll子项目,它将该子项目的目标框架设置为。净标准2.0。这是可以设定的最“现代”的目标框架。

    不过,这也有一个问题,就是我不能使用一些我习惯了的东西,比如“Resources.MyResource”(它在框架4.6.1中运行良好)。

    现在我想知道有什么方法可以纠正这个问题吗?或者通过增加。NET标准,或通过允许用户选择。NET框架也适用于这些。dll项目(除了在解决方案外部创建.dll项目,然后将其导入解决方案之外)?

    2 回复  |  直到 8 年前
        1
  •  2
  •   Kevin LaBranche    8 年前

    。Net标准是的规范。的所有实现上可用的NET API。净额。

    这是什么意思?-在中调用API。Net标准将在所有上运行。已实现该版本标准的Net版本。

    那这是什么意思?-。Net Core引入了跨平台开发。现在可能需要在Windows机器和Linux机器之间共享代码,这需要一个“标准”,可以在所有机器上实现。

    把它想象成一份合同。如果是的版本。Net机具。Net标准2.0,它表示将在该标准中有一个API版本可用于所有平台。

    那么,回到你原来的问题。Net标准2.0不是该框架的“新”版本。假设子项目是一个类库,那么它就是您的子项目要遵守的契约。如果一个API似乎丢失了,那是因为它没有将其作为合同的一部分(可能)。我说可能是因为这不是最容易找到的。

    ****开始修订****

    这是一个 table of the versions of .Net that support the versions of .Net Standard 。

    在您的情况下,4.6.1甚至不支持2.0。4.6.1支持的标准的最新版本是1.4。

    我认为4.6.1支持。Net标准2.0之后,我写了上述内容,并在进一步阅读后发现 up to date chart 随着 this post 说明其在4.6.1中得到支持。 叹气

    ****结束修订****

    这 SO answer 似乎表明1.4中确实有资源,但它是预览版本,情况有所变化。我在API支持列表中没有看到它,但我可能会错过它。SO的答案似乎表明这是一个工具问题,可以解决。现在可以解决了。。。。

    你可以在这里看看 each Standard supports for APIs 。

    然而,我不认为这是你真正想要的。

    我认为您真正想要的是简单地将子项目的目标更改为4.6.1,就像您的主应用一样,因为我高度怀疑您不需要/不希望跨平台运行。

    此外,在之前。Net标准2.0,数千个API不在标准中。IMO,在2.0之前,该标准是一个硬销售,尤其是对上的用户。Net完整框架。

        2
  •  0
  •   kÍ©eÍ£mÍ®pÍ¥ Í©    8 年前

    我可以告诉您,要使用的项目模板位于“Windows Classic Desktop”类库(.Net Framework)下

    编辑

    也就是说,您可以添加 .resx 文件到。Net标准项目,并以完全相同的方式使用它。

    推荐文章