【问题标题】:4.6.1 F# app throwing FileNotFoundException: FSharp.Core4.6.1 F# 应用程序抛出 FileNotFoundException: FSharp.Core
【发布时间】:2018-03-31 05:22:09
【问题描述】:

我有一个 .NET4.6.1 项目,如果我链接到 Nuget 的 FSharp.Core 最新版本(在编写 4.3.4 时)会引发以下异常:

找不到自定义 attr 构造函数图像: /Users/andres/Documents/Code/MyApp/src/MyApp/bin/Debug/MyApp.exe mtoken:0x0a000015 由于:无法加载文件或程序集 'FSharp.Core,版本=4.4.3.0,文化=中性, PublicKeyToken=b03f5f7f11d50a3a' 或其依赖项之一。 程序集:FSharp.Core,版本=4.4.3.0,文化=中性, PublicKeyToken=b03f5f7f11d50a3a 类型:成员:

奇怪的是,编译后我只在obj文件夹中找到.dll,而在bin文件夹中却没有:

$ find ./src | grep FSharp.Core
./src/MyApp/obj/Debug/FSharp.Core.dll

这是预期的吗?我正在使用 VS4Mac。

【问题讨论】:

    标签: .net visual-studio f# nuget


    【解决方案1】:

    事实证明,在将 FSharp.Core nuget 依赖项升级到新版本时,.fsproj 文件中发生的真正差异是这样的:

         <Reference Include="FSharp.Core">
    -      <HintPath>..\..\packages\FSharp.Core.4.1.0.2\lib\net45\FSharp.Core.dll</HintPath>
    +      <HintPath>..\..\packages\FSharp.Core.4.3.4\lib\net45\FSharp.Core.dll</HintPath>
    +      <Private>False</Private>
         </Reference>
    

    (但看到这一点并不清楚,因为它正在将&lt;Reference&gt; 标记移动到文件中的其他位置。)

    注意上面添加的&lt;Private&gt; 标签。如果您执行what is advised in this other answer to a similar question(我不会声称它是重复的,因为那个是关于 Windows 而这个是 macOS),也就是说,将引用标记为 LocalCopy=true,那么 Visual Studio 将删除 &lt;Private&gt;False&lt;/Private&gt; XML 元素,然后一切又开始工作了。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-06-15
      • 2012-06-19
      • 2020-07-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多