У меня есть простой проект библиотеки классов (с Class1
), и я включил восстановление пакета NuGet для решения.
Это импортирует задачу restorepackages
в файл .csproj.
Я могу скомпилировать проект с помощью
C:>msbuild myproj.csproj /t:compile
И я могу успешно вызвать задачу restorepackages перед добавлением пакетов с помощью
C:>msbuild myproj.csproj /t:restorepackages
Однако добавление любого пакета приведет к сбою задачи restorepackages сошибка 3.
Похоже, что задача NuGet вызывается с неверным рабочим каталогом, и вы можете на самом деле исправить это поведение, удалив атрибут рабочий каталог в файле NuGet.targets, который был добавлен в решение.
Отредактируйте задачу следующим образом:
<Exec Command="$(RestoreCommand)"
LogStandardErrorAsError="true"
Condition="Exists('$(PackagesConfig)')"
WorkingDirectory="$(NuGetToolsPath)" />
и удалите рабочий каталог:
<Exec Command="$(RestoreCommand)"
LogStandardErrorAsError="true"
Condition="Exists('$(PackagesConfig)')"
/>
Кажется, что работает как ожидалось, как откомандной строки msbuild и в VS2010.
Кто-нибудь знает, может ли это изменение сломать какой-либо инструмент?