[英]NuGet Respository for TFS Build
我所有的搜索都找不到清晰的答案。 我们拥有TFS 2015,并希望使用自定义的NuGet存储库来存储我们的内部包。
当前,它们与TFS安装位于同一服务器上的物理驱动器上。 但是,它经常找不到任何软件包。
我的困惑在这里出现。 为了将此目录用作Nuget存储库,我们是否需要安装其他软件或生成一些index.json? 文件夹中是否存在软件包不足? 我已经看过很多关于Package Management插件(成本超过5人)或升级到TFS 2017的文章。
我的理解是否正确,仅将软件包放在服务器可以访问并指向的位置是不够的?
谢谢!
更新:
根据BehemothDan在下面的评论,此问题已通过将Nuget.Server安装为IIS中服务器上的应用程序来解决。 只需为TFS构建过程提供一个URL而不是一个目录路径,一切就可以很好地进行。 (将Nuget.Server指向目录)
正如Daniel所说:“ NuGet将使用该程序包源。与TFS无关。构建系统所做的全部工作都是在命令行上运行。”
因此,您只需要设置源:
nuget.config
设置包源,或在Visual Studio中直接添加源。 因此,当您在TFS中构建时,nuget将识别源并自动还原软件包。
您可以参考本文以了解以下内容:
此外,TFS在TFS 2017及更高版本中引入了包管理功能。
因此,如果升级到TFS 2017或更高版本,则可以直接在TFS中管理软件包。
有关详细信息,请参阅VSTS和TFS中的NuGet程序包管理入门 。
您还可以参考本文以从TFS2017 Build发布到私有NuGet服务器
如果您的构建无法在TFS上正确运行,则意味着与本地计算机相比,您在TFS上的文件夹(或依赖项)结构不同。 在那种情况下,TFS代理试图在TFS上编译源,而没有找到依赖关系。
为了将目录用作Nuget存储库,您不需要安装任何东西,但是请确保您应该了解以下几点。 您有2种方式来引用您的软件包:您可以使用Package引用,通过PackageReference节点,它直接在项目文件中管理NuGet依赖关系,其次,与Packages.config节点相反,它将配置保存在.config文件中。 。
最重要的是,PackageReference用于.NET Core项目,那么您要尝试构建哪种项目?
.NET完整框架项目支持PackageReference,但当前默认为packages.config
我的建议是:-如果您正在处理.netcore项目,请使用PackageReference并打开您的解决方案,并查看所有依赖项是否指向
%SystemDrive%\\ Users \\ .nuget
为了正确编译,TFS上应该有相同的路径,出于优化原因,您不应将此文件夹移动到另一个文件夹,因此,如果您负责TFS监视器,则C驱动器的空间可能会成倍增长。
-如果您不使用.NetFramework,而不是Core,则应按@Andy Li-MSFT所说创建本地存储库。 我建议您阅读我刚才一步一步发布的答案: https : //stackoverflow.com/a/43791395/819153
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.