我使用Teamcity (在互联网中的虚拟机上运行)创建了一个Nuget服务器,并创建了将包发布到其中的构建。
我还有另一个项目需要使用这个包。这个项目也是建立在团队基础上的。在我本地的Visual Studio上,我添加了nuget feed uri,安装了这个包,一切都很正常。但是当我尝试在teamcity上构建它时,它显示“找不到包”。
所以我的问题是:“如何将定制的nuget提要添加到TeamCity构建中?”
发布于 2013-01-27 22:53:46
NuGet包源是通过Visual Studio配置的,但它们存储在c:\Users\$USER\AppData\Roaming\NuGet\NuGet.config
上的每个用户的配置文件中。需要将TeamCity包源的条目添加到运行生成的生成代理用户的配置文件中。
编辑: ladenedge记录了一个很好的解决方案,当我最初回答这个问题时,这个解决方案还不存在。如果您不具有对生成代理的管理员访问权限,或者希望在每个项目的基础上配置包源,则该解决方案特别有用。
发布于 2013-07-29 23:29:34
NuGet现在可以从与源本身一起存储的NuGet.targets
文件中读取源,如the answer to a duplicate question中所述。
<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://nuget.org/api/v2/) will be excluded if package sources are specified and it does not appear in the list -->
<PackageSource Include="https://nuget.org/api/v2/" />
<PackageSource Include="https://my-nuget-source/nuget/" />
</ItemGroup>
发布于 2016-02-20 04:20:17
我不想在源代码中的NuGet.config中添加提要,因为这是构建基础结构的一部分,而不是应用程序代码的一部分。
我也不想在NuGet.config on TeamCity构建代理中添加feed,因为它很难维护(更新、添加、删除),而且我们有很多构建代理。
对我来说效果最好的是在TeamCity中添加%system.PackageSources% (在根项目中),其中包含全局nuget feed和我的自定义(以分号分隔):
https://www.nuget.org/api/v2/;http://:81/guestAuth/app/nuget/v1/FeedService.svc
如果您查看NuGet.Targets,,您将看到它使用$(PackageSources) (如果已定义)。因此,您在TeamCity中将其定义为“系统”参数,并将其传递给构建过程。
https://stackoverflow.com/questions/14548324
复制相似问题