nuget - 项目如何获得自己的 NuGet 包,而不是使用解决方案使用的包?
问题描述
我有一个 C# 项目 TrendMasterCS2,它是在 VS 2019 中构建的,它使用一个 DLL TrendData,它依赖于我通过 NuGet 包管理器获得的 System.Data.SQLite.Core。我打开了 TrendMasterCS2 sollutio 并从可执行项目和 DLL 项目中卸载了所有 NuGet 包。然后,我将 System.Data.SQLite.Core 包添加到 TrendData 项目。我保存了所有文件,然后在记事本中打开了项目文件。我看到了这个:
<Reference Include="System.Data.SQLite, Version=1.0.113.0, Culture=neutral, PublicKeyToken=db937bc2d44ff139, processorArchitecture=MSIL">
<HintPath>..\TrendMasterCS2\packages\Stub.System.Data.SQLite.Core.NetFramework.1.0.113.3\lib\net45\System.Data.SQLite.dll</HintPath>
</Reference>
这对我来说似乎是个问题。如果我想在其他解决方案中使用 TrendData DLL,它将携带对 TrendMaster2 文件夹的这种依赖关系。我想我可以在 VS2019 中自行打开 TrendData 并在其中添加 NuGet 包,但这是我必须做的以确保 TrendData 独立于 TrendMasterCS2 吗?
解决方案
考虑从迁移packages.config
到PackageReference
. (在 Visual Studio 中,右键单击packages.config
并选择Migrate packages.config to PackageReference...)。这样做的一个好处PackageReference
是所有包都将恢复到全局包缓存目录,并且该工具会在编译时处理实际的引用路径。
有关详细信息,请参阅https://docs.microsoft.com/en-us/nuget/consume-packages/migrate-packages-config-to-package-reference。
作为替代方案,您可以创建一个nuget.config
文件并repositoryPath
按照此处所述进行更改:https ://docs.microsoft.com/en-us/nuget/reference/nuget-config-file#packagerestore-section
但是,我没有设法使用nuget.config
.
推荐阅读
- c# - 当我在 asp.net core mvc 中未经授权时,如何始终返回登录/登录视图?
- h2o - AttributeError:将混淆矩阵转换为数据框时,'H2OFrame' 对象没有属性'lower'
- spring-boot - Elasticsearch 高级别的客户端无法映射 geo_point
- javascript - 每次将具有特定类的元素添加到 DOM 时,如何触发脚本?
- r - ggplot 中的 facet_wrap 用于 SF
- github - 无法添加身份“~/.ssh/id_rsa”:代理拒绝操作
- python-3.x - 是否可以从压缩文件中删除字符而不提取它?
- c# - 如何在使用 Web 服务更新实体时防止触发 Dynamics CRM 插件执行?
- android - 项目中的 Kotlin 访问文件
- sql-server - 如何从表中导出所有数据以更新 MS SQL 命令?