Tfs 无法从nuget包解析对dll的引用

Tfs 无法从nuget包解析对dll的引用,tfs,msbuild,nuget,Tfs,Msbuild,Nuget,在我的TFS构建中,nuget软件包在预构建脚本期间下载并解压ok。 未解析来自nuget的DLL在生成期间的引用: C:\Windows\Microsoft.NET\Framework64\v4.0.30319\Microsoft.Common.targets(1605):无法解析此引用。找不到程序集“” 我还没有将nuget/packages签入TFS源代码管理-我认为您不应该这样做 未解析的参考示例: <Reference Include="Gestion_Excepciones"&

在我的TFS构建中,nuget软件包在预构建脚本期间下载并解压ok。 未解析来自nuget的DLL在生成期间的引用:
C:\Windows\Microsoft.NET\Framework64\v4.0.30319\Microsoft.Common.targets(1605):无法解析此引用。找不到程序集“”

我还没有将nuget/packages签入TFS源代码管理-我认为您不应该这样做

未解析的参考示例:

<Reference Include="Gestion_Excepciones"> 
 <HintPath>..\..\..\..\packages\Gestion_Excepciones.1.0.0.0\lib\net35\Gestion_Excepciones.dll</HintPath>
</Reference>

..\..\..\..\packages\Gestion\u Excepciones.1.0.0\lib\net35\Gestion\u Excepciones.dll
生成日志(对不起,西班牙语)

参考原则“指示和例外”。(TaskId:10)17:22:37.274
2> C:\Windows\Microsoft.NET\Framework64\v4.0.30319\Microsoft.Common.targets(1605,5): 警告MSB3245:没有se pudo解析器esta referencia。无硒软膏 el ensamblado“手势例外”。存在的压缩 迪斯科舞厅。这是一种参考,是一种产品 编译错误。 [C:\Builds\1\Egestiona\eLegisla\src\source\website\modules\eLegisla\asp.net\u eLegisla.BussinesLayer.Datos\asp.net\u eLegisla.BussinesLayer.Datos.csproj] >段落搜索路径“{HintPathFromItem}”。(TaskHoo: 10)SE考虑 “..\..\..\packages\Gestion\u Excepciones.1.0.0\lib\net35\Gestion\u Excepciones.dll”, pero no existía.(任务ID:10)第搜索路径 “{TargetFrameworkDirectory}”。(TaskHoo: 10)SE考虑“C:\程序” 文件\参考 Assemblies\Microsoft\Framework\v3.5\Gestion\u Excepciones.winmd“,pero 不存在。(TaskHoo: 10)SE考虑“c:\程序文件引用” Assemblies\Microsoft\Framework\v3.5\Gestion\u Excepciones.dll”,pero-no 存在。(TaskHoo: 10)SE考虑“c:\程序文件引用” Assemblies\Microsoft\Framework\v3.5\Gestion\u Excepciones.exe”,pero no 存在。(任务编号:10)

通过Bing翻译的英文版本

主要参考“管理uu例外”。(TaskId:10)17:22:37.274
2>
C:\Windows\Microsoft.NET\Framework64\v4.0.30319\Microsoft.Common.targets(1605,5)
:警告MSB3245:
无法解析此引用。在“异常管理”中找不到程序集。检查磁盘上是否存在程序集。如果代码需要此引用,则可能导致编译错误<代码>[C:\Builds\1\Egestiona\eLegisla\src\source\website\modules\eLegisla\asp.net\u eLegisla.BussinesLayer.Datos\asp.net\u eLegisla.BussinesLayer.Datos.csproj]

用于搜索路径“
{HintPathFromItem}

(TaskId:10)它被认为是“
。\..\..\..\..\packages\Exceptions\u management.1.0.0\lib\net35\Exceptions\u management.dll
”,但搜索路径“
{TargetFrameworkDirectory}
”没有任何
(TaskId:10)
(TaskId:10)它被认为是“
C:\Program Files\Reference Assembly\Microsoft\Framework\v3.5\Exceptions\u management.winmd
”,但没有。
(TaskId:10)它被认为是“
C:\Program Files\Reference Assembly\Microsoft\Framework\v3.5\Exceptions\u management.dll
”,但没有。
(TaskId:10)它被认为是“
C:\Program Files\Reference Assemblies\Microsoft\Framework\v3.5\Exceptions\u management.exe
”,但没有。
(任务ID:10)

生成日志显示msbuild考虑了HintPath,但找不到它-但我可以看到它就在那里!HintPath不是相对于.csproj目录的吗

我正在使用

MSBuildBinPath=C:\Windows\Microsoft.NET\Framework64\v4.0.30319

nuget 2.8.1


TFS 2012已在TFS 2013源代码管理上签入/packages,现在正在解析引用。这让我有点沮丧——有一个nuget存在的理由是您不必签入包(读取DLL),因为它们位于包存储库中。

在多个解决方案中使用了nuget引用的库吗?在这种情况下,您添加nuget引用的解决方案的提示路径可能不适用于您正在构建的解决方案。所有解决方案上的所有项目都使用相同的packages目录,区别显然在于用于指向DLL的HintPath的..\块数。不确定这是否是问题所在,因为所有项目都在VisualStudio的“开发人员”框中编译为ok。具体来说,nuget使用的是所有解决方案都通用的nuget.config($project/main/source/nuget.config),它反过来指定了一个公共包目录($project/main/source/packages)。请尝试将详细度设置为“Diagnostic”的构建,并查看输出,这是我的常用策略。我的策略也是这样,只是重复检查一下,它处于诊断模式。除上述内容外,没有关于dll ref的其他信息。