F#/FAKE NuGet 私有订阅源身份验证

F#/FAKE NuGet Private Feed Authentication

我正在尝试使用 FAKE 来恢复我的 NuGet 包作为构建脚本的一部分,但我需要使用需要身份验证的私人提要 (Artifactory)。

我在寻找解决方案时遇到了这个问题。 https://github.com/fsharp/FAKE/issues/119

这表明问题已通过提交解决,但我无法确定提交的位置或提交进入的版本,而且似乎没有任何记录的使用方式。

Target "RestorePackages" (fun _ -> 
     "./**/*.sln"
     |> RestoreMSSolutionPackages (fun p ->
         { p with
             Sources = "{url}" :: p.Sources
             OutputPath = outputDir
             Retries = 4 })
 )

我查看了源代码并找到了上面的代码片段,尽管它似乎没有与身份验证相关的参数,除非它们被传递到 Sources 参数中?

有没有人有任何关于让 FAKE 包恢复与身份验证一起工作的经验或知识?

您可以将凭据添加到您的 nuget.config 并在您的恢复中指定它。

{ p with
     Sources = p.Sources
     OutputPath = outputDir
     Retries = 4 
     ConfigFile = Some "./tools/nuget/nuget.config" }

然后将类似的内容添加到您的配置中。

 <packageSource>
     <add key="feedName" value="http://example.com/Feed.svc" />
 </packageSource>
 <packageSourceCredentials>
     <feedName>
         <add key="Username" value="xxx" />
         <add key="ClearTextPassword" value="secret" />
     </feedName>
 </packageSourceCredentials>

https://docs.nuget.org/consume/nuget-config-settings

与此同时,"ConfigFile" 字段不(不再)可用。但是,您应该能够利用 nuget.config 文件的层次结构特性(此处解释:https://docs.nuget.org/consume/nuget-config-file)。

另请参阅章节"Credentials for package source"以加密方式存储密码。