【问题标题】:MSBuild error finding the nuget.targets file查找 nuget.targets 文件的 MSBuild 错误
【发布时间】:2012-12-08 04:19:46
【问题描述】:

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

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

Msbuild Project.csproj

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

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>

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

【问题讨论】:

    标签: .net msbuild nuget


    【解决方案1】:

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

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

    然后导致问题!希望这对那里的其他人有所帮助,我现在回答我自己的问题感到难过。

    【讨论】:

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

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

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

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

    【讨论】:

      【解决方案3】:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2020-03-02
        • 1970-01-01
        • 2011-03-03
        • 1970-01-01
        • 1970-01-01
        • 2023-03-03
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多