.net MSBuild查找nuget.targets文件时出错

.net MSBuild查找nuget.targets文件时出错,.net,msbuild,nuget,.net,Msbuild,Nuget,我正试图用msbuild构建一个csproj项目,但是它有各种奇怪的问题,抱怨没有找到nuget.targets 我使用MSbuild运行最简单的命令行生成: Msbuild Project.csproj 这在我的普通dev文件夹中工作,但在另一个文件夹位置,它失败,出现以下错误: 错误MSB4019:找不到导入的项目“C:\BuildAgent\work\CableSense\.nuget\nuget.targets”。确认声明中的路径正确,并且文件存在于磁盘上。 该路径(C:\BuildA

我正试图用msbuild构建一个csproj项目,但是它有各种奇怪的问题,抱怨没有找到nuget.targets

我使用MSbuild运行最简单的命令行生成:

Msbuild Project.csproj
这在我的普通dev文件夹中工作,但在另一个文件夹位置,它失败,出现以下错误:

错误MSB4019:找不到导入的项目“C:\BuildAgent\work\CableSense\.nuget\nuget.targets”。确认声明中的路径正确,并且文件存在于磁盘上。

该路径(
C:\BuildAgent\work\CableSense\.nuget\nuget.targets
)实际上是错误的,并且在工作后缺少一个文件夹(work\somefolder\CableSense),但我不知道为什么。更奇怪的是,如果我构建了另一个项目作为解决方案的一部分,那么它就可以工作了,就是这个项目

csproj指定nuget.targets文件的位置,如下所示:

<Import Project="$(SolutionDir)\.nuget\nuget.targets" />

SolutionDir的定义如下:

<SolutionDir Condition="$(SolutionDir) == '' Or $(SolutionDir) == '*Undefined*'">..\</SolutionDir>
\

这与另一个可行的项目相同。有什么想法吗?

啊!发布后,我发现了问题。。基本上,该项目依赖于其他项目。这些相关项目的csproj文件稍有错误-将此作为SolutionDir:

<SolutionDir Condition="$(SolutionDir) == '' Or $(SolutionDir) == '*Undefined*'">..\..\CableSense\</SolutionDir>
。\..\CableSense\

这就造成了问题!希望这对其他人有帮助,我现在回答自己的问题感到很难过。

好的,所以我最近也犯了同样的错误,但解决方案对我来说是不同的

在构建定义中,在源代码设置下,我将源代码管理文件夹设置为实际项目的目录,而不是解决方案的根文件夹


我知道这是一个旧的回答线程,但这可能会帮助犯了与我相同错误的人。

对我来说,我只是更改了解决方案的位置,以获得一个较短的位置。

好吧,马特,你说这导致了问题,但你没有说你是如何解决的。我也有同样的问题,看看你的答案,我仍然不知道该怎么解决这个问题。基本上,检查那些相关的项目,看看如果SolutionDir不存在,使用的路径是否正确(在那篇文章中是.././CableSense错了)哦,不,我也有同样的问题。有没有办法自动修复解决方案目录?如果没有的话,我有很多csproj文件要编辑:-(感谢您告诉我们其他正在努力解决问题的人您是如何修复它的。太棒了!