【发布时间】: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