首页 > 解决方案 > 项目如何获得自己的 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 吗?

标签: nuget

解决方案


考虑从迁移packages.configPackageReference. (在 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.


推荐阅读