Подтвердить что ты не робот

Ошибка MSBuild в поиске файла nuget.targets

Я пытаюсь создать проект csproj с msbuild, но у меня есть всевозможные странные проблемы, жалующиеся на то, что не найдут 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>

Это то же самое, что и другой проект, который работает. Любые идеи?

4b9b3361

Ответ 1

Argh! После публикации этого вопроса я нашел проблему. В принципе, проект имел зависимости от других проектов. Файлы csproj для этих связанных проектов были немного неправильными - и это было как SolutionDir:

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

Что тогда вызвало проблему! Надеюсь, что это помогает кому-то еще, я чувствую себя плохо для ответа на свой вопрос сейчас.

Ответ 2

ОК, поэтому я недавно получил ту же ошибку, но решение для меня было другим.

В определении сборки в разделе "Параметры источника" у меня была папка "Исходный контроль", установленная в каталог фактического проекта вместо корневой папки для решения.

Я знаю, что это старый ответ, но это может помочь кому-то, кто сделал ту же ошибку, что и я.

Ответ 3

для меня я просто изменил местоположение решения, чтобы иметь короткое местоположение.