Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/mercurial/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.net 无法解析此引用:CI服务器上的NuGet_.net_Tfs_Nuget_Tfsbuild_Nuget Package Restore - Fatal编程技术网

.net 无法解析此引用:CI服务器上的NuGet

.net 无法解析此引用:CI服务器上的NuGet,.net,tfs,nuget,tfsbuild,nuget-package-restore,.net,Tfs,Nuget,Tfsbuild,Nuget Package Restore,我正在连接到VS Online的TFS生成控制器上运行CI生成。我有一个NuGet软件包的“无法解决此引用”问题,我观察到了以前从未见过的行为: 在本地,数据包下载到packages\FluentValidation.5.5.0,而在服务器上,数据包下载到packages\FluentValidation.5.5.0 Packages.config: <package id="FluentValidation" version="5.5.0" targetFramework="net45"

我正在连接到VS Online的TFS生成控制器上运行CI生成。我有一个NuGet软件包的“无法解决此引用”问题,我观察到了以前从未见过的行为:

在本地,数据包下载到
packages\FluentValidation.5.5.0
,而在服务器上,数据包下载到
packages\FluentValidation.5.5.0

Packages.config:

<package id="FluentValidation" version="5.5.0" targetFramework="net45" userInstalled="true" />
Nuget package restore已启用,因此如果我从packages文件夹中本地删除包并重新生成,则可以正常工作

现在在CI服务器上。生成诊断日志状态:

正在安装“FluentValidation 5.5.0.0”。 ... 已成功安装“FluentValidation 5.5.0.0”

但在构建日志中进一步:

16> C:\程序文件 (x86)\MSBuild\12.0\bin\amd64\Microsoft.Common.CurrentVersion.targets(1697,5): 警告MSB3245:未能解析此引用。找不到 程序集“FluentValidation”。检查以确保装配正确 存在于磁盘上。如果您的代码需要此引用,您可以 获取编译错误。[C:\Builds\24353…stuff…\projectfile.csproj] 对于搜索路径“{HintPathFromItem}”。 考虑了“C:\Builds\24353…stuff…\packages\FluentValidation.5.5.0\lib\Net40\FluentValidation.dll”

正如所料-该文件夹中没有包

C:\Builds\24353\。。。stuff…\packages\FluentValidation.5.5.0\lib\Net40\

但是-这是因为它被下载到CI服务器上的另一个文件夹中:

C:\Builds\24353\。。。stuff…\packages\FluentValidation.5.5.0.0\lib\Net40\

(注意包文件夹名称后面的额外.0)

我不知道额外的.0是从哪里来的。项目似乎也忽略了构建路径。 CI服务器上有VS 2013,我更新了框上的NuGet,没有帮助。引用中只有一个地方有5.5.0.0(带2个零)。我删除了尾随。0。解决方案仍在本地生成,但不在CI上生成

更新 在.csproj文件中添加第二个hintpath似乎可以修复CI服务器上的构建,但会在本地破坏它。我真的不明白为什么本地版本是v5.0.0,而CI服务器版本是v5.0.0.0


p.S.我将其报告为错误:

结果表明这是NuGet中的一个错误,在VS2015 RC中已修复:

资料来源:

<Reference Include="FluentValidation, Version=5.5.0.0, Culture=neutral, processorArchitecture=MSIL">     
<HintPath>$(SolutionDir)\packages\FluentValidation.5.5.0\lib\Net40\FluentValidation.dll</HintPath>
  <SpecificVersion>False</SpecificVersion>
  <Private>True</Private>
</Reference>