System.Net.Http DLL未复制到bin文件夹 - IdentityServer4.AccessTokenValidation

时间:2017-03-02 13:09:01

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

我有一个API项目使用.net核心项目使用完整.net 4.6.1我正在更新我的一个使用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中看到System.Net.Http DLL \ WIN7-64"

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

 "IdentityServer4.AccessTokenValidation": "1.0.5"

3)再次清除bin文件夹

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

当你运行它时,项目应该仍然可以正常工作,但我正在使用需要丢失DLL的nuget包......

2 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:0)

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