是否可以将Github存储库用作Paket的Nuget源?
查看文档https://fsprojects.github.io/Paket/github-dependencies.html似乎并非如此,我尝试将Github存储库和Git存储库配置组合使用,但没有真正的成功。
我一直在兜圈子,试图让SSH代理零运气地与我们的TeamCity配置一起使用,以便仅使用纯git依赖项。
鉴于这证明是徒劳的,我想切换到在github上使用auth token ,但是看不到任何将其与指定Package源结合使用的选项。
理想情况下,我追求的是:
github myorganisation/myrepo githubAuthKey Packages: /nuget/
最佳答案
使用GitHub作为NuGet存储库有两个步骤,您已经完成其中之一。您需要使用nuget
中的Paket paket.dependencies
实际从所需的存储库/路径中提取所需的NuGet软件包。您发出的第一个命令仅完成一半的工作。本质上是在设置您的NuGet源。我更喜欢使用本地安装的git,因此我使用的是github
而不是Paket的git
,但是本质上是相同的...
git https://github.com/<User>/<Priv NuGet repo> [branch|label] Packages: <path to .nupkg files>
nuget <NuGet package ID> <semantic version>
所以,如果我的GitHub存储库看起来像这样……
/.
-> A.1.0.0.0.nupkg
-> A.2.0.0.0.nupkg
-> B.1.0.0.0.nupkg
-> C.1.0.0.0.nupkg
我需要A,B和C,所有版本都为v1.0.0.0,我会像这样设置
paket.dependencies
……git https://github.com/EricLease/MyNuGetRepo master Packages: /
nuget A 1.0.0.0
nuget B 1.0.0.0
nuget C 1.0.0.0
注意:如果您的软件包位于存储库中的某个子文件夹下,例如
/nuget/
,那么您将更改Packages: /
以匹配(Packages: /nuget/
)在
paket.references
文件下,我可以将所需的包引用为A
,B
或C
。这将导致一个
paket.lock
文件,看起来像这样...NUGET
remote: paket-files/github.com/EricLease/MyNuGetRepo
A (1.0.0.0)
B (1.0.0.0)
C (1.0.0.0)
GIT
remote: https://github.com/EricLease/MyNuGetRepo
(xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx)
path: /
请注意,这些软件包的
NUGET remote
实际上设置为您的本地paket-files
文件夹,该文件夹由GIT remote
上的packet installupdate
填充。