我公司有很多Visual Studio Team Services帐户。我们有一个用于内部开发,一个用于我们的每个客户。我们在内部开发帐户(https://{dev-account}.visualstudio.com/DefaultCollection
)中托管我们的内部nuget库,并且我希望在客户端帐户(https://{client-account}.visualstudio.com/DefaultCollection
)中运行构建时还原软件包。 / p>
我使用bootstrap tools设置了存储库,在我的VSTS构建中,我添加了一个批处理脚本构建步骤,执行init.cmd
。这很好,但是,下一步是NuGet Package Restore,它无法在开发帐户的NuGet提要中找到这些包:
2016-03-22T23:34:37.5398840Z请提供以下证明: HTTPS:// {DEV-帐户} .pkgs.visualstudio.com / DefaultCollection / _包装/ {我的馈送} /nuget/v3/index.json
2016-03-22T23:34:37.5408842Z用户名:密码:警告:无法执行 找到版本' 1.9.0.10'包' {my-package}'。
这是有道理的,因为Feed位于单独的VSTS帐户中,而构建代理无权访问该Feed。
这周围有吗?我知道MyGet,它提供免费的公共供稿,但如果可能的话,我想使用VSTS。
答案 0 :(得分:2)
我对此解决方案并不感到兴奋,但它确实有效。您可以在nuget.config中存储包源的凭据:
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<config>
<clear />
<add key="repositoryPath" value="packages" />
</config>
<packageSources>
<!-- When <clear /> is present, previously defined sources are ignored -->
<!-- Remove this tag or un-comment the nuget.org source below to restore packages from nuget.org -->
<!-- For more info, see https://docs.nuget.org/consume/nuget-config-file -->
<clear />
<add key="vss-package-management" value="https://www.myget.org/F/vss-package-management/api/v2" />
<add key="nuget.org" value="https://api.nuget.org/v3/index.json" />
<add key="{dev-account}" value="https://{dev-account}.pkgs.visualstudio.com/DefaultCollection/_packaging/{feed}/nuget/v3/index.json" />
</packageSources>
<activePackageSource>
<add key="All" value="(Aggregate source)" />
</activePackageSource>
<packageSourceCredentials>
<{dev-account}>
<add key="Username" value="username" />
<add key="ClearTextPassword" value="password" />
</{dev-account}>
</packageSourceCredentials>
</configuration>