Я уже несколько дней искал, как заставить NuGet автоматически восстанавливать пакеты с помощью VS2015 с помощью GitLab, и мне не повезло.Пакет NuGet не восстанавливается с VS2015 с помощью GitLab
Сценарий: Я клонировал пустой репозиторий из GitLab и использовал VS для добавления файлов .gitignore и .getattribute по умолчанию. Я создал приложение консоли HelloWorld с использованием .NET framework 4.5.2. Я хочу автоматически увеличивать числа сборки, поэтому я установил пакет расширения MSBuild (введите «Install-Package MSBuild.Extension.Pack» в консоли NuGet в VS). Это изменяет файл CSPROJ. Затем я модифицировал файл проекта, чтобы обновить номера сборки и ревизий в каждой сборке. Чистая модифицированная часть файла проекта выглядит следующим образом:
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
<Import Project="..\packages\MSBuild.Extension.Pack.1.8.0\build\net40\MSBuild.Extension.Pack.targets" Condition="Exists('..\packages\MSBuild.Extension.Pack.1.8.0\build\net40\MSBuild.Extension.Pack.targets')" />
<Import Project="$(MSBuildProjectDirectory)\..\packages\MSBuild.Extension.Pack.1.8.0\tools\net40\MSBuild.ExtensionPack.VersionNumber.targets" />
<Target Name="BeforeBuild" Condition="'$(Configuration)' == 'Release'">
<AssemblyInfo AssemblyInfoFiles="@(AssemblyInfoFiles)" />
</Target>
<Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
<PropertyGroup>
<ErrorText>This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText>
</PropertyGroup>
<Error Condition="!Exists('..\packages\MSBuild.Extension.Pack.1.8.0\build\net40\MSBuild.Extension.Pack.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\MSBuild.Extension.Pack.1.8.0\build\net40\MSBuild.Extension.Pack.targets'))" />
</Target>
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
Other similar extension points exist, see Microsoft.Common.targets.
<Target Name="BeforeBuild">
</Target>
<Target Name="AfterBuild">
</Target>
-->
Так я строю, он ведет себя так, как и ожидалось, и проверить все это на другой машине, я клонировать хранилище и открыть решение.. Проект не загружается, и VS ничего не пытается восстановить; это ошибка:
C:\Users\mwoodard\Source\Repos\c-sharp-commons\HelloConsole\HelloConsole\HelloConsole.csproj : error : The imported project "C:\Users\mwoodard\Source\Repos\c-sharp-commons\HelloConsole\packages\MSBuild.Extension.Pack.1.8.0\tools\net40\MSBuild.ExtensionPack.VersionNumber.targets" was not found. Confirm that the path in the <Import> declaration is correct, and that the file exists on disk. C:\Users\mwoodard\Source\Repos\c-sharp-commons\HelloConsole\HelloConsole\HelloConsole.csproj
Я вижу много других людей, имеющих проблемы с NuGet восстанавливает, а также множество решений, но ни один из них не по всей видимости, относятся к проектам, которые были впервые начали использовать VS2015. (Есть много решений, которые говорят, что нужно что-то изменить в подкаталоге .nuget проекта или решения ... VS2015 не создает такой каталог.)
В дополнение к этому восстановление NuGet должно работать из MSBuild, поскольку наша сборка машина не будет работать с Visual Studio.
Спасибо, решение сработало. Исправленная строка была добавлена NuGet, когда я установил пакет MSBuild Extensions. И BTW, это не значит, что я не хочу использовать папку .nuget, это то, что для меня не создается VS2015, и у меня нет файлов для ее заполнения. –