MSBuild错误找到nuget.targets文件

时间:2012-12-20 15:44:28

标签: .net msbuild nuget

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

我使用MSbuild运行最简单的命令行构建:

Msbuild Project.csproj

这在我的普通开发文件夹中有效,但在另一个文件夹位置,它会因这些错误而失败:

error MSB4019: The imported project "C:\BuildAgent\work\CableSense\.nuget\nuget.targets" was not found. Confirm that the path in the <Import> declaration is correct, and that the file exists on disk.

该路径(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>

与其他有效的项目相同。有什么想法吗?

3 个答案:

答案 0 :(得分:56)

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

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

然后引起了这个问题!希望这能帮助那里的其他人,我现在回答自己的问题感觉不好。

答案 1 :(得分:3)

好的,所以我最近遇到了同样的错误,但解决方案对我来说有所不同。

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

我知道这是一个老问题,但这可能会帮助那些犯了同样错误的人。

答案 2 :(得分:0)

对我来说,我只是改变了解决方案的位置,以便有一个短的位置。