我已经在网上阅读了大量的一百个链接,试图找到答案,而且我完全没有解释。
我有一个运行Git Team Projects的TFS 2013 Server。我创建了一个TFS构建来构建一个服务,该服务使用公共(Entity Framework)nuget包以及我们自己的一些库,这些库在IIS服务器上打包为Nuget包。我使用的是自动套餐还原,而不是“已弃用”#39; MSBuild"启用包恢复"。因此.nuget文件夹中唯一的nuget文件是nuget.config(我也试过移动到根文件夹中)
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<solution>
<add key="disableSourceControlIntegration" value="true" />
</solution>
<packageSources>
<add key="nuget.org" value="https://www.nuget.org/api/v2/" />
<add key="myserver" value="http://myserver/Nuget/Nuget/" />
</packageSources>
<packageRestore>
<add key="enabled" value="True" />
</packageRestore>
</configuration>
问题是,当我远程进入构建框时,从命令行尝试:
nuget.exe list -source http://myserver/nuget/nuget
它会列出所有包。
但是一个TFS构建,从nuget.org下载实体框架......但是它试图构建:
C:\Program Files (x86)\MSBuild\12.0\bin\amd64\Microsoft.Common.CurrentVersion.targets
(1697,5): warning MSB3245: Could not resolve this reference.
Could not locate the assembly "MyEntitiesLib".
Check to make sure the assembly exists on disk.
If this reference is required by your code, you may get compilation errors.
所以,我的智慧在这里结束了。项目的nuget.config和msbuild工具文件夹中的默认nuget.config都有我的源代码,我可以从命令行列出它,但是自动包恢复不会把那个包拉下来,并且炸毁编译。
帮助任何人?
答案 0 :(得分:1)
答案是在最不可能的地方找到的。
Nuget fails to install specific version
我已经构建了包含非符号版本的符号版本的软件包,并且nuget restore显然已经放弃了它们。当我尝试从构建框手动运行Nuget.exe Restore时,提示是有关重复根节点的警告。我可以列出包,但我无法恢复它们。一旦我从Nuget存储库中删除了* .symbol.nupkg文件,就恢复了包,并且构建工作正常。
谢谢大家。我希望这可以帮助别人。