Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/tfs/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在TFS build server中设置nuget服务器apikey 问题:_Tfs_Msbuild_Nuget_Tfsbuild - Fatal编程技术网

如何在TFS build server中设置nuget服务器apikey 问题:

如何在TFS build server中设置nuget服务器apikey 问题:,tfs,msbuild,nuget,tfsbuild,Tfs,Msbuild,Nuget,Tfsbuild,如何设置nuget源api密钥,使其与运行“网络服务”的TFS构建一起工作 脚本 我有TFS构建服务器和作为“网络服务”执行的构建定义 在构建期间,我尝试发布nuget软件包: <Exec Command='"nuget.exe" push "mypackages\*.nupkg" -source http://mynugetserver/'/> 当我登录到build server并运行此命令时,它会为当前用户保存apikey,并在作为网络服务运行的TFS build中忽略它。bu

如何设置nuget源api密钥,使其与运行“网络服务”的TFS构建一起工作

脚本 我有TFS构建服务器和作为“网络服务”执行的构建定义

在构建期间,我尝试发布nuget软件包:

<Exec Command='"nuget.exe" push "mypackages\*.nupkg" -source http://mynugetserver/'/>
当我登录到build server并运行此命令时,它会为当前用户保存apikey,并在作为网络服务运行的TFS build中忽略它。build.proj在手动执行时发布包,因为密钥是为当前用户保存的,但在我将新tfs build排入队列时,它不起作用

我已尝试在根目录中为TFS项目生成“C:\builds\1\MyProject\nuget.config”创建自定义nuget.config,然后运行

nuget setapi "myapikey" -source http://mynugetserver/ -ConfigFile "C:\Builds\1\MyProject\nuget.config"
但构建以以下消息结束:


“密钥在指定状态下无效”

您可以使用push命令直接设置apiKey,格式如下:

nuget push <packages> <apiKey> -source <nuget server url>
nuget推送-源代码
您还可以创建包含以下内容的单个项目文件,然后创建生成定义以生成一次:

<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Target Name="SetApiKey">
    <Exec Command='nuget.exe setapikey xxxxx -source '/>
</Target>
</Project>


在此之后,您应该能够在“网络服务”下推送不带apikey的包,并且可以删除构建定义和proj文件。我只是在我的环境下尝试了一下,效果很好。

我知道,但我不想在源代码(build.proj)中使用apikey@Liero我只是编辑了我的答案,并在其中添加了我的解决方法。好吧,但是为了在tfs构建期间运行目标,我必须签入它。我将删除它,但它仍然是源代码历史记录。或者我没有正确理解它?@Liero您可以将文件放在生成服务器上,并在生成定义中输入文件的绝对路径。例如,“D:\temp\xxx.proj”我可以这样做,但这真的是最好的方法吗?希望在TFS2015中使用新的“提要”功能会更容易
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Target Name="SetApiKey">
    <Exec Command='nuget.exe setapikey xxxxx -source '/>
</Target>
</Project>