【问题标题】:System.Net.Http DLL not copied into bin folder - IdentityServer4.AccessTokenValidationSystem.Net.Http DLL 未复制到 bin 文件夹中 - IdentityServer4.AccessTokenValidation
【发布时间】:2017-03-02 13:09:00
【问题描述】:

我有一个使用完整 .net 4.6.1 的 .net 核心项目的 API 项目我正在更新我的一个使用 Identity Server 4 的 nuget 包,并确保它与我的一些旧代码没有冲突,所以我删除了 bin 文件夹内容。

我重建了项目,但它现在无法注入我的 nuget 包,说它找不到 system.net.http 4.1.1.0。经过数小时的缓慢排除后,事实证明,当项目重建并将其所有 DLL 放入 bin 文件夹时,它并没有复制 system.net.http DLL。

奇怪的是,当我使用 .net 4.6.1 创建一个新的 .net 核心 API 项目并删除 bin 文件夹并重建它时,它确实复制了 system.net.http dll。

所以我的问题是 - 我如何确保将 DLL 复制到 bin 文件夹中,这样在项目中工作的其他人就不会发生这种情况?


2017-03-03 11:00更新

所以我发现了是什么破坏了我的项目,但我不知道为什么/如何解决它。

1) 如果您创建一个空白的 .net 核心 API 项目,请将其更改为使用 .net461 清理您的 bin 文件夹并构建它,您将在“bin\Debug\net461\win7-”文件夹中看到 System.Net.Http DLL x64"。

2) 现在将 IdentityServer4 AccessTokenValidation 添加到依赖项中

 "IdentityServer4.AccessTokenValidation": "1.0.5"

3) 再次清除您的 bin 文件夹

4) 构建项目,您将看到 System.Net.Http DLL 丢失。

当您运行该项目时,它应该仍然可以工作,但我使用的是需要缺少 DLL 的 nuget 包...

【问题讨论】:

  • 你用的是什么版本的VS?我发现 VS 2017 RC 有问题,并且遇到了一些类似的问题,涉及 nuget 的事情确实适用于某些项目,但不适用于其他项目

标签: c# dll asp.net-core identityserver4


【解决方案1】:

System.Net.Http 应该是使用它的项目中的引用。获取引用的属性并将属性“复制本地”设置为 true。

【讨论】:

    【解决方案2】:

    如果您所做的所有选项都不起作用,请尝试重新启动(以“管理员”身份关闭/打开)您的 Visual Studio,然后清理/重建。这解决了我的问题。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-09-10
      • 2016-03-12
      • 1970-01-01
      • 2017-05-16
      • 2017-11-29
      • 1970-01-01
      • 2013-10-25
      • 2021-07-22
      相关资源
      最近更新 更多