net*_*ica 5 .net c# package-management nuget
这实质上相当于,“我如何克隆 .NET 项目、进行修改并使用它而不是已发布的项目?”
在 NodeJS 中,我们有npm link,它允许您将 node_modules/ 目录中的本地包(模块)链接到当前项目。因此,例如,您可以在 package.json 中使用 Express,而不是
npm link在 Express repo 中运行以创建全局可用的本地包npm link express在您当前的项目中运行以使用您的本地快递,而不是您将获得的快递npm install。使用 .NET,我目前看到的最接近的解决方案包括创建本地提要,但在我的实验中,这似乎不起作用。关于堆栈溢出的其他问题,例如如何在 .net 中使用本地包,似乎提供了使用 RestoreSources 的解决方案,这在整个网络中几乎没有记录。当尝试将 RestoreSources 更改为使用 LocalPackages 目录时,我不清楚是否正在使用本地包(obj/ 目录中的源似乎仍然来自 nuget 包而不是本地)。
对于将来想知道这一点的任何人,正确的答案是使用本地提要。我的问题是我缓存了 nuget 包,这些包在dotnet restore.
恢复之前的以下命令解决了我的问题:
dotnet nuget locals all --clear
dotnet restore
Run Code Online (Sandbox Code Playgroud)
本质上,您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>
Run Code Online (Sandbox Code Playgroud)
其中 artifacts/ 目录包含.nupkg您要在还原期间使用的所有包。显然,您必须确保dotnet restore在您的主要解决方案中构建/编译这些包也是必不可少的:
dotnet pack /p:Version=5.22.12 --configuration Release --force --output "%~dp0artifacts";
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
976 次 |
| 最近记录: |