从本质上讲,这就是“如何克隆.NET项目,进行修改并使用它而不是已发布的项目?”
在NodeJS中,我们有npm link
,可让您将node_modules /目录中的本地包(模块)链接到当前项目。因此,例如,您可以在package.json中使用Express代替
npm link
,以创建全局可用的本地程序包npm link express
以使用本地快递,而不是npm install
的快递。使用.NET,到目前为止,我所看到的最接近的解决方案包括创建一个local feed,但是在我的实验中,这似乎不起作用。诸如how to use local packages in .net之类的其他有关堆栈溢出的问题似乎都提供了使用RestoreSources的解决方案,该问题实际上在整个Web上均未记录。尝试将RestoreSources更改为使用LocalPackages目录时,我不清楚是否正在使用本地软件包(obj /目录中的源似乎仍来自nuget软件包而不是本地)。
答案 0 :(得分:0)
对于将来想知道这一点的任何人,正确的答案是使用local feed。我的问题是我缓存了在dotnet restore
期间要解决的nuget程序包。
还原前的以下命令解决了我的问题:
dotnet nuget locals all --clear
dotnet restore
本质上,您需要在解决方案中拥有一个nuget
配置(NuGet.config),以设置本地软件包目录:
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<packageSources>
<clear />
<add key="LocalDev" value="./my-project/artifacts" />
<add key="nuget.org" value="https://api.nuget.org/v3/index.json" protocolVersion="3" />
</packageSources>
</configuration>
artifacts /目录中包含要在还原期间使用的所有.nupkg
软件包。显然,还必须确保在主要解决方案中dotnet restore
之前已构建/编译了这些软件包:
dotnet pack /p:Version=5.22.12 --configuration Release --force --output "%~dp0artifacts";