And*_*ens 14 tfsbuild nuget tfs2012
我已经建立了一个内部NuGet存储库(我们的一个服务器上的共享文件夹),并将其添加到我PC上的Visual Studio NuGet设置中的"可用源"列表中.我能够从这个存储库成功地将软件包安装到我的解决方案中.
但是在TFS服务器上,构建失败,因为它无法恢复此特定包(消息:"无法找到包'xxx'的版本'xxx'").该解决方案配置为"启用NuGet包还原",适用于通过安装的包nuget.org
.它只是没有从我们的内部存储库恢复包.
存储库文件夹/共享的权限很好.我错过了什么?
我猜我必须在TFS服务器上配置Visual Studio的"可用源",但可能这些设置是用户特定的?构建服务作为NETWORK SERVICE运行,那么如何为该用户配置NuGet?
Jef*_*ler 28
您可以将源添加到TFS构建服务器上的计算机范围的配置中,并且在执行程序包还原时它将包含在源列表中.
我所做的是创建一个%ProgramData%\NuGet\Config\sources.config
包含以下内容的文件:
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<packageSources>
<add key="internal source" value="http://internal_server/nuget/" />
</packageSources>
</configuration>
Run Code Online (Sandbox Code Playgroud)
文件的名称无关紧要,它是文件的位置.Nuget选择该文件夹下的任何.config文件.
http://docs.nuget.org/docs/reference/NuGet-Config-File#NuGet_config_extensibility_point
更新2016-11-18
根据http://blog.nuget.org/20161121/introducing-nuget4.0.html(根据重大变化),VS 2017+和NuGet 4.0+更改了机器范围的配置文件夹的位置到%ProgramFiles(x86)%\NuGet\Config\
.
更改您的构建以作为特定帐户运行。然后您可以使用该帐户登录并证明所有这些小问题。
根据您执行 NuGet 恢复的方式,您是否使用本地源的位置更新了目标文件?
<ItemGroup Condition=" '$(PackageSources)' == '' ">
<!-- Package sources used to restore packages. By default, registered sources under %APPDATA%\NuGet\NuGet.Config will be used -->
<!-- The official NuGet package source (https://www.nuget.org/api/v2/) will be excluded if package sources are specified and it does not appear in the list -->
<!--
<PackageSource Include="https://www.nuget.org/api/v2/" />
<PackageSource Include="https://my-nuget-source/nuget/" />
-->
<PackageSource Include="http://MyLocalFeed/nuget/nuget"/>
</ItemGroup>
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
5846 次 |
最近记录: |