如何正确配置NuGet包以与DevOps(TFS)协作

问题描述 投票:0回答:1

我已阅读并完成以下内容:

但我仍然有文件夹包含我的解决方案的包的问题,​​当我检查我的代码,因为我在我身边一切正常,当其他人获得检查的解决方案,他必须改变路径是在ProjectNameFile.csproj中设置,因为其中包含的路径

../../../../nu get packages/....

但应该是(只有在改为时才有效)

../Packages

但是当这个人检查并且我得到这个版本时,我的包文件夹已经消失......我们一直在这里使用TFS在其他项目上,但这对我来说是第一次...

我尝试了所有我发布的链接都是建议,但没有运气。工具>选项> NuGet包管理器如下所示:enter image description here

我有一个与projectname.sln文件相同级别的NuGet.Config文件,其中包含以下内容:

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <config>
    <!-- I tried each line below seperately and together -->
    <add key="globalPackagesFolder" value=".\packages" /> 
    <add key="repositoryPath" value="C:\Development\projectname\Packages" />
  </config>
</configuration>

所以我现在做的是在projectname.sln级别创建一个Packages文件夹,当我构建我的解决方案时,这可以工作但是,我不能每个(X)时间都这样做,我相信有一种方法可以实现这但不知道怎么做。

提前感谢您的任何反馈。

tfs azure-devops nuget-package nuget-package-restore collaboration
1个回答
1
投票

如何正确配置NuGet包以与DevOps(TFS)协作

我想你正在使用packages.config作为nuget包管理,因为你说“he has to change the path that is set in the ProjectNameFile.csproj because the path there contains ../../../../NuGetPackages/....”。

因此,如果您使用packages.config,则在使用Azure DevOps构建项目时,应在repositoryPath文件中使用nuget.config的相对路径。

我们知道,当我们在Azure DevOps中构建项目时,Azure DevOps总是将项目复制到D:\a\1\s\xx这样的路径,这与本地路径不同。 NuGet总是使用..\packages中的相对路径(../../../../NuGetPackages/...ProjectNameFile.csproj):

<Reference Include="packagename, Version=3.0.0.0, xxx">
  <Private>True</Private>
  <HintPath>..\packages\xxx\lib\net45\xxx.dll</HintPath>
</Reference>

在这种情况下,当我们构建项目时,nuget仍然会将nuget包恢复到绝对路径C:\Development\projectname\Packages,但由于项目的位置已更改为D:\a\1\s\xx,因此.csproj文件中HintPath的相对路径也应该是相应地改变了,否则nuget找不到相应的dll文件。

因此,我们应该将repositoryPath设置为nuget.config文件中的相对路径,例如:

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <config>
    <add key="repositoryPath" value=".\packages" />
  </config>
</configuration>

使用此设置,packages文件夹的路径基于文件nuget.config。只要您没有修改nuget.config文件的位置,就不需要修改HintPath

注意:

  1. qazxsw poi用于另一种nuget管理类型qazxsw poi。
  2. 如果您正在与其他人合作开发项目,则需要统一nuget包的位置,而不是手动修改globalPackagesFolder。否则会导致开发混乱。

希望这可以帮助。

© www.soinside.com 2019 - 2024. All rights reserved.