gpt4 book ai didi

c# - .Net Framework 4.7.2 引用 .Net Standard 2.0 项目

转载 作者:行者123 更新时间:2023-12-05 07:09:07 26 4
gpt4 key购买 nike

我的情况:我有一个 .Net 4.7.2 WinForms 应用程序。它引用了一个项目,该项目是一个 .Net Standard 类库.Net Standard 库使用 PackageReference 引用 Microsoft.SqlServer.SqlManagementObjects NuGet 包

当我构建 winforms 应用程序时,它从 net462 lib 文件夹而不是 netstandard2.0 文件夹中提取 Microsoft.SqlServer.SqlManagementObjects 包。这是一个问题,因为库的 .Net Standard 版本具有不同的类(例如,它使用 Microsoft.Data.SqlConnection 而不是 System.Data.SqlConnection)。因此,当应用程序运行时,您会收到一条错误消息System.MissingMethodException:找不到方法:'Void Microsoft.SqlServer.Management.Common.ServerConnection..ctor(Microsoft.Data.SqlClient.SqlConnection)'

有什么办法解决这个问题吗?我觉得如果 SMO 库有这样的差异,它们应该被分成不同的包用于 .Net Standard 和 .Net Framework。

最佳答案

我相信官方的立场是这是图书馆创作问题,所以没有一个好的方法来做你想做的事。

有一个令人发指的黑客详细here不过,这类似于:

<PackageReference Include="Microsoft.SqlServer.SqlManagementObjects" ExcludeAssets="Compile" GeneratePathProperty="true">
<Version>1.2.3</Version>
</PackageReference>
<Reference Include="Microsoft.SqlServer.SqlManagementObjects">
<HintPath>$(PkgMicrosoft_SqlServer_SqlManagementObjects)lib\netstandard2.0\Microsoft.SqlServer.SqlManagementObjects.dll</HintPath>
</Reference>

关于c# - .Net Framework 4.7.2 引用 .Net Standard 2.0 项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61688438/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com