【问题标题】:F#: Is Profile 47 required for Microsoft.FSharp.Data.TypeProviders?F#:Microsoft.FSharp.Data.TypeProviders 是否需要 Profile 47?
【发布时间】:2017-02-24 18:44:43
【问题描述】:

这是my post yesterday 的后续行动。回顾一下,我在尝试构建项目时收到此错误消息:

FSC:错误 FS2024:静态链接可能不使用针对目标的程序集 不同的个人资料

我在 F#fpchat.com 频道咨询了一些好心人,其中一位建议错误可能是因为我没有 Profile 47,因为 FSharp.Data 使用 Profile 47。我尝试下载Profile 47 的目标包,但被重定向到 Microsoft 主页。我在this SO page 上尝试了第二个答案,但这也不起作用。到目前为止,我仍然无法获得 Profile 47。

我咨询了FSharp.Data GitHub page,但我不清楚为什么需要 Profile 47。我使用 VS2013 编译到 FSharp.Core 4.3.0.0;这还不够吗,因为 GitHub 页面将其列为受支持的平台之一?

我创建了一个新项目,重新添加了所有源文件和引用,并尝试重新构建。我什至尝试卸载然后重新安装 Microsoft VS,尽管我知道这可能无关紧要。

我认为问题很可能在于引用 FSharp.Data.TypeProviders。就我排除对 FSharp.Data.TypeProviders 的引用而言,不会出现错误消息。最奇怪的是,我在过去一周左右的时间里根本没有更改我的引用,但错误消息只是昨天才出现。

所以,我的问题是:

  1. 真的需要 Profile 47 吗?如果是,我如何获得它?
  2. 即使我确实获得了 Profile 47,我在构建我的项目时是否仍然会遇到麻烦,因为我的其他参考文件不针对 Profile 47?
  3. 有没有我可能没有考虑过的方法?

【问题讨论】:

    标签: dll visual-studio-2013 f# f#-data


    【解决方案1】:

    在尝试了我在网上找到的各种建议的解决方案后,我发现解决问题的唯一方法是将我的 Target Framework 从 4.5 更改为 4.0,重新安装我的所有引用以确保与.NET 4.0,然后重新构建我的解决方案。使用 .NET 4.0 意味着我不再能够使用 Microsoft.Experimental.Collections,因为它仅与 .NET 4.5 兼容。这意味着我将不得不重新编写所有使用 Microsoft.Experimental.Collections 的代码,但我认为这比根本无法构建我的项目要小。

    所以,要回答我自己在标题中提到的问题,使用 FSharp.Data.TypeProviders 不需要 Profile 47。 :-)

    编辑:

    我找到了解决问题的另一种方法。我(再次)创建了一个新项目,迁移了我所有的源文件,重新安装了我需要的所有 DLL,这一次我构建我的项目没有任何问题。我认为 Carsten(对这个答案写了第一条评论)说版本在原始解决方案文件中变得混乱是正确的。

    【讨论】:

    • 很高兴你找到了一个解决方案(虽然我看不出它为什么不能与 4.5 一起使用)——有时解决方案文件中的愚蠢版本会搞砸——如果你不想撕掉通过弄清楚它们你的头发你可以尝试创建一个新的解决方案并“添加现有文件”你的旧源文件 - 这也很乏味,但它不时节省了我(通常一个好的源代码控制更好 -您可能可以找出旧/新版本以及更改它的原因)
    • @Carsten,我不明白为什么它也不应该与 4.5 一起使用。事实上,我从项目一开始就一直在使用 4.5,直到昨天我在构建解决方案时都没有遇到任何问题。从字面上看,这个问题突然冒出来了。我认为我应该考虑获得一个 repo,以便将来如果再次出现类似问题,我可以更轻松地调试。 :-)
    • @MY_G 是的,拥有一个仓库总是是个好主意。 Git 让“仅限本地”源代码控制变得容易,这是我开始新项目时通常会做的事情。项目上市后,迁移(并绕过第一个弯路)真的很容易。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-11-19
    • 2017-01-31
    • 2011-04-18
    • 2019-12-23
    • 2020-11-06
    • 2012-01-27
    • 2021-07-26
    相关资源
    最近更新 更多