我有一个要准备推送到VSTS nuget服务器的项目-私有*在构建定义内)。我有一个项目进展顺利,并显示在Visual Studio的nuget资源管理器中。我有另一个项目,它依赖第一个项目。我已经配置了构建过程以与私有nuget服务器上的依赖项目进行交互-并且可以正常构建。打包失败,尽管表明无法找到原始项目的nuget包。以下是我正在运行的方案:
项目A构建 项目A包nuget包 项目A发布nuget程序包
项目B NUGET GET-项目A(通过) 项目B构建(通过) 项目B包nuget包(失败) 报告以下错误
nuget命令失败,退出代码为(1),并且 错误(找不到'A.nupkg'。确保已构建项目。)
不确定为什么项目B的包装正在寻找项目A的包装。包B的打包任务仅指向项目B proj文件-不清楚为什么要查找未打包到当前包中的项目A包
答案 0 :(得分:0)
好的-经过研究,我发现了问题所在。用于put操作的VSTS nuget TASK在Visual Studio .net项目上(而非解决方案)显式工作。在意识到NUGET打包操作需要知道其他包含的nuget包的位置之后,我了解了发生了什么。由于标识的位置是Visual Studio项目,因此它将在目标Visual Studio项目的位置上方的文件夹中寻找包位置。现在,我的系统不再以这种方式维护解决方案-因此定位Package文件夹失败。如果错误消息指示它在所查看的位置找不到该软件包,那将是很好的选择。了解了所发生的情况后,我发现有一个名为nuget.config的配置文件,该文件放置在目标Visual Studio项目所在的位置,可以指定nuget包的位置。
<configuration>
<config>
<add key="repositoryPath"
value="..\..\..\OrderIT\Solutions\DataManagementCore\packages" />
</config>
</configuration>
这解决了问题。如果MS已准备好NUGET任务以使用Visual Studio解决方案,然后能够从正在打包的解决方案中选择项目,以便可以找到package文件夹(默认情况下,Visual Studio会将package文件夹放置在nuget操作正在查找的位置。
彼得