【问题标题】:When using 3rd party libraries, do they get compiled to the version of my app?使用 3rd 方库时,它们是否被编译为我的应用程序版本?
【发布时间】:2018-03-02 21:25:57
【问题描述】:

当我包含来自其他项目或第 3 方的 dll 并将它们包含到我的 VS.NET 解决方案中时,这些库的编译版本是否重要?

我在我的解决方案中以 4.6 版本为目标,我必须确保所有 http 请求都是使用 TLS 1.2 的 4.6 版本完成的

【问题讨论】:

  • 我对你的最后一段有点困惑。如果您的应用程序使用SecurityProtocolType.Tls12,则无需担心编译不可用的版本,因为您会收到错误消息。我也看不出这种担忧与第一段中的问题有何关系。
  • 大概他/她有一个发出 HTTPS 请求的库,但不确定该库是否会为运行时版本使用默认的 SecurityProtocolType。
  • @JimW 这是正确的。我的应用程序使用另一个 dll,我想确保在编译我的解决方案时它也将使用相同的版本进行编译。一个 dll 是预编译的,所以我猜不是?

标签: c# windows-services tls1.2


【解决方案1】:

重要的是 runtime 版本,而不是您编译时使用的 SDK 版本。因此,如果一个库是针对 .NET 4.0 构建的,但您的应用在运行时 4.5 下运行,它将使用 v4.5 协议默认值。

更多信息请见Default SecurityProtocol in .NET 4.5

编辑:

如果你打电话

System.Net.ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls | SecurityProtocolType.Tls11 | SecurityProtocolType.Tls12;

然后它将应用于包括库代码在内的整个应用程序,除非库代码明确将 SecurityProtocol 设置为其他值。

【讨论】:

    猜你喜欢
    • 2011-05-14
    • 1970-01-01
    • 2021-11-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-08-27
    • 1970-01-01
    相关资源
    最近更新 更多