.net - 我可以在 .NetFramework 4.8 上引用 FSharp.Data 版本 >= 4.0 吗?
问题描述
我的项目在 .NetFramework 4.8 上运行,并且(在其他包中)依赖于 FSharp.Data 3.3.3。
我正在尝试升级软件包,但出现错误:
*Error FS3031: The type provider '\packages\FSharp.Data\lib\netstandard2.0\FSharp.Data.dll' reported an error: Assembly attribute 'TypeProviderAssemblyAttribute' refers to a designer assembly 'FSharp.Data.DesignTime' which cannot be loaded or doesn't exist. Could not load file or assembly 'FSharp.Core, Version=4.7.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' or one of its dependencies. The system cannot find the file specified.*
*FSC : error FS3031: The type provider 'G:\packages\FSharp.Data\lib\netstandard2.0\FSharp.Data.dll' reported an error: Assembly attribute 'TypeProviderAssemblyAttribute' refers to a designer assembly 'FSharp.Data.DesignTime' which cannot be loaded or doesn't exist. Could not load file or assembly 'FSharp.Core, Version=4.7.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' or one of its dependencies. The system cannot find the file specified. [G:\Kernel\Project\Project.Tests.fsproj]*
我注意到对于 FSharp.Data 版本 >= 4.0,该软件包是为 .NetStandard2.0 构建的,但据我了解,这不应该是一个问题。
3.3.3 版本为我编译,net45 版本和包中的 nestandard2.0 版本。
我用 paket 作为我的包裹。
我试图引用 FSharp.Data.DesignTime.dll,但没有运气。
.fsproj:
<SchemaVersion>2.0</SchemaVersion>
<ProjectGuid>46274688-4815-444d-b237-9aeec92ef3e6</ProjectGuid>
<OutputType>Library</OutputType>
<RootNamespace>Project.Tests</RootNamespace>
<AssemblyName>Project.Tests</AssemblyName>
<TargetFrameworkVersion>v4.8</TargetFrameworkVersion>
<Name>Project.Tests</Name>
<SccProjectName>SAK</SccProjectName>
<SccProvider>SAK</SccProvider>
<SccAuxPath>SAK</SccAuxPath>
<SccLocalPath>SAK</SccLocalPath>
<TargetFSharpCoreVersion>6.0.0.0</TargetFSharpCoreVersion>
<TargetFrameworkProfile />
<AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects>
项目的 app.config 如下所示:
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.8" />
</startup>
<runtime><assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<Paket>True</Paket>
<assemblyIdentity name="FSharp.Core" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-65535.65535.65535.65535" newVersion="6.0.0.0" />
</dependentAssembly>
</assemblyBinding></runtime></configuration>
我可能会遗漏一些明显的东西,但我已经尝试用谷歌搜索了几天了。有没有人在.NetFramework 4.8 上使用这个包成功?
解决方案
我刚刚使用 .NET Framework 4.8 和 FSharp.Data 4.2.3 创建了一个新的控制台应用程序,没有任何问题。
我注意到您正在重定向到 FSharp.Core 6.0.0。你确定你想要那个吗?
无论如何,我的 .fsproj 是:
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>net48</TargetFramework>
<WarnOn>3390;$(WarnOn)</WarnOn>
</PropertyGroup>
<ItemGroup>
<Compile Include="Program.fs" />
</ItemGroup>
<ItemGroup>
<PackageReference Include="FSharp.Data" Version="4.2.3" />
</ItemGroup>
</Project>
而且没有app.config。
推荐阅读
- python - 没有名为“sentinelsat”的模块/NameError:未定义名称“SentinelAPI”
- mysql - MariaDB 按日期计数、加入和分组,无需外键
- python - 如何解决烧瓶应用程序中的内部服务器错误?
- c# - SQLite 记录已填充,但使用 C# 为空
- c# - 如果语句仅选择 linq2xml 查询中的第一个值
- android - FragmentTransaction 在替换旧片段后添加片段但调用 onDestroyView
- c++ - std::pmr::memory_resource 如何与 std::container 产生性能差异?
- python - 在从作业中创建 pos 时,由于并发更新而无法序列化访问
- javascript - SAPUI5 ProcessFlow - 仅通道
- java - JPA + @OneToMany + DELETE:如果我稍后访问父项,则不会删除项目