我有一个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添加到依赖项中。
然后我重新构建项目,这时就无法注入我的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包...