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

7
我有一个API项目,使用完整的 .net 4.6.1和.net core项目。我正在更新其中使用Identity Server 4的一个nuget包,并确保它不会与我的旧代码发生冲突,因此删除了bin文件夹中的内容。
然后我重新构建项目,这时就无法注入我的nuget包,报错说找不到system.net.http 4.1.1.0。经过很长时间逐步排除之后,发现在重新构建项目并将所有DLLs放入bin文件夹时,它没有复制system.net.http DLL。
奇怪的是,当我创建一个新的.net core API项目并删除bin文件夹并重新构建时,它实际上会复制system.net.http dll。
那么我的问题是:我该如何确保系统复制DLL到bin文件夹,以便其他人在该项目上工作时避免这种情况发生?
更新2017-03-03 11:00
所以我已经找到了破坏我的项目的原因,但我无法弄清楚为什么/如何修复它。
1)如果您创建一个空的 .net core API 项目,将其更改为使用 .net461,然后清理bin文件夹并进行构建,则会在“bin\Debug\net461\win7-x64”文件夹中看到System.Net.Http DLL。
2)现在将IdentityServer4 AccessTokenValidation添加到依赖项中。
 "IdentityServer4.AccessTokenValidation": "1.0.5"

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

4)构建项目,您会发现System.Net.Http DLL丢失了。

当您运行该项目时,它仍然应该工作,但我正在使用一个需要该缺失DLL的NuGet包...


你使用的是哪个版本的VS?我发现VS 2017 RC存在一些问题,有些项目涉及NuGet的事情可以正常工作,而其他项目则不能。 - ArgusMagnus
2个回答

4

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


0
如果你尝试了所有的选项都没有解决问题,请尝试重新启动(以管理员身份关闭/打开)Visual Studio,然后进行清理/重建。这个方法已经解决了我的问题。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接