visual-studio - Azure Pipeline 未找到实际可用的包
问题描述
我有一个包含许多 nuget 包的项目。System.Net.Http.Extensions.
其中一次是csproj
包含此参考:
<Reference Include="System.Net.Http.Extensions, Version=2.2.29.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\..\..\packages\Microsoft.Net.Http.2.2.29\lib\net45\System.Net.Http.Extensions.dll</HintPath>
</Reference>
在我的本地机器上构建显然有效。包文件夹包含在我的仓库中。
具有自托管代理的 Azure 管道不会生成说缺少程序集。所有包都已在代理中成功还原,并且该包也可以在packages
文件夹中找到。
那么我在这里错过了什么?
解决方案
在 azure devops 中,它会在文件夹路径下找到包位置,该路径由<HintPath>... </HintPath
> 控制。
正常情况下,它的默认位置应该是<HintPath>..\packages\...</HintPath>
,这与定义的默认位置相同Nuget.config
。我假设它的本地 repos 路径应该永远改变,那么它HintPath
在文件中定义的路径csproj
也会自动改变。但是,在 Nuget.config 中,它的包默认位置仍然保持默认。这将导致包还原时,它遵循Nuget.config
. 但是在构建期间,由于它会查找带有csproj
... 定义的包,因此构建无法知道实际包恢复的位置。然后导致这些错误信息。
我们可以修改文件中的包位置定义Nuget.config
。使其与 同步HintPath
,此时恢复的包的位置将与构建时包的位置相同。
将以下脚本添加到 Nuget.config 文件中:
<configuration>
<config>
<add key="repositoryPath" value="xxxx" />
</config>
...
</configuration>
推荐阅读
- shopify - 是否可以使用应用程序自定义结帐液体
- matlab - 从 ASCII 文件导入表
- java - 远程服务器上的肥皂调用速度较慢
- android - 上传Playstore免费和付费应用程序国家明智
- python - 将元组中的元素转换为类似字节的对象
- angular - 如何将 ngc 安装为项目特定的 cli 工具?
- logging - ELK Logstash 中的日期解析问题与日志的自定义 Java 时间戳格式
- c - 字符串与字符串文字:直接赋值还是 strcpy/strncpy?
- css - CSS - 选择文本元素
- batch-file - 在 Windows 10 的系统启动中放置 .bat 和 .vbs 脚本