visual-studio - Visual Studio 删除未使用的 Nuget 依赖项
问题描述
我现在正在努力从 bin 输出文件夹中删除未使用的依赖项。例如,我正在编写一个小型 .NET Wpf 程序,该程序从 Web 服务器获取数据。因此,我安装了 System.Net.Http NugetPackage 来发出我的 Get / Post 请求。包信息存储在 .csproj 文件中。当我编译项目时,很多依赖项被添加到输出文件夹中
系统.Security.Cryptography.Algorithms.dll
系统.Security.Cryptography.Encoding.dll
系统.Security.Cryptography.Primitives.dll
系统.Security.Cryptography.X509Certificates.dll
...
这些依赖项都没有在我的程序中明确使用,这意味着当我从输出文件夹中删除它们并启动应用程序时,一切都按预期工作。我知道这个 Dll 必须在包中,但我怎么能忽略它们。有没有办法忽略 nuget 包中的依赖关系?
解决方案
实现此目的的一种方法是在 Dll 引用上将 copy local 设置为 false。
我没有从事过 WPF 项目,但我相信这仍然适用。
为此,在项目中展开“引用”节点,选择 Dll,然后在“属性”窗口中将“复制本地”属性设置为 False。
这应该可以防止 Dll 进入 bin 并且在发布时也不会被包含在内。
警告一句,该应用程序现在可能可以工作,但是这样做会给未来的您或其他开发人员带来潜在的陷阱。如果以后代码更改需要这些 Dll 之一,您的应用程序将不会那么高兴,那么您必须记住将 Copy Local 设置回 True。
推荐阅读
- ethereum - 试图理解 Infura 的区块头
- vba - 使用 MinGW gcc 为 VBA 64 位创建 DLL
- c# - 使用 SSIS 脚本连接 API 失败
- excel - 使用嵌套的 Do While 语句运行 For 循环,但为什么我的代码会冻结?
- bash - In Terminal - For-loop 将每张连续的 18 张图片拼接成一张图片
- python - 使用 Python 使用 scipy fsolve 或 scipy.optimize.root 解决非线性系统的问题
- date - 有没有办法在 Thymeleaf 中使用 #dates 来仅包含日、月和年,同时保持区域设置格式?
- firebase - Firebase 存储安全通过默默无闻
- reactjs - 类型错误:_firebase_app__WEBPACK_IMPORTED_MODULE_1___default.a.auth 不是函数
- javascript - 我的语法错误,请告知 JavaScript 和 JQuery 的适当语法?