2016-04-25 2 views
0

Я использую Visual Studio 2015, у меня есть решение с двумя различными веб-приложениями. В нем существует одно решение и два проекта. Файлы, связанные с самородком распределены:VSTS Непрерывная интеграция: пакет NuGet отсутствует на этом компьютере

  1. Пакетами Папки находится в каталоге Solution
  2. Package.config в каждой директории проекта

Там нет самородка папки: nugget.config и самородка. exe в моем решении.

Моя сборка проекта и прекрасно работать в Visual Studio, но я столкнулся с проблемой при использовании VSTS непрерывной интеграции с Сложение Solution Шаг (которые используют определение сборки, переводящий к одному проекту) это дает:

This project references NuGet package(s) that are missing on this computer. Use 
 
NuGet Package Restore to download them. For more information, see The missing file is 
 
..\packages\Microsoft.Net.Compilers.1.0.0\build\Microsoft.Net.Compilers.props.

Это MyProject.csproj файл:

<?xml version="1.0" encoding="utf-8"?> 
 
<Project ToolsVersion="14.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> 
 
    <Import Project="..\packages\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.1.0.0\build\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.props" Condition="Exists('..\packages\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.1.0.0\build\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.props')" /> 
 
    <Import Project="..\packages\Microsoft.Net.Compilers.1.0.0\build\Microsoft.Net.Compilers.props" Condition="Exists('..\packages\Microsoft.Net.Compilers.1.0.0\build\Microsoft.Net.Compilers.props')" /> 
 
    <Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" /> 
 
    <PropertyGroup> 
 
    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration> 
 
    <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform> 
 
    <ProductVersion> 
 
    </ProductVersion> 
 
    <SchemaVersion>2.0</SchemaVersion> 
 
    <ProjectGuid>{BBD26A49-D1F4-4391-9D60-2469433DEE0D}</ProjectGuid> 
 
    <ProjectTypeGuids>{349c5851-65df-11da-9384-00065b846f21};{fae04ec0-301f-11d3-bf4b-00c04f79efbc}</ProjectTypeGuids> 
 
    <OutputType>Library</OutputType> 
 
    <AppDesignerFolder>Properties</AppDesignerFolder> 
 
    <RootNamespace>AdminUI</RootNamespace> 
 
    <AssemblyName>AdminUI</AssemblyName> 
 
    <TargetFrameworkVersion>v4.5.2</TargetFrameworkVersion> 
 
    <MvcBuildViews>false</MvcBuildViews> 
 
    <UseIISExpress>true</UseIISExpress> 
 
    <IISExpressSSLPort /> 
 
    <IISExpressAnonymousAuthentication /> 
 
    <IISExpressWindowsAuthentication /> 
 
    <IISExpressUseClassicPipelineMode /> 
 
    <UseGlobalApplicationHostFile /> 
 
    <SccProjectName>SAK</SccProjectName> 
 
    <SccLocalPath>SAK</SccLocalPath> 
 
    <SccAuxPath>SAK</SccAuxPath> 
 
    <SccProvider>SAK</SccProvider> 
 
    <NuGetPackageImportStamp> 
 
    </NuGetPackageImportStamp> 
 
    </PropertyGroup> 
 
    <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">

я заметил, что он только пытается импортировать пакет, который вызвал ошибку, но это явно не импортировать другие пакеты, но включить их в качестве ссылок:

<Reference Include="WebGrease"> 
 
     <Private>True</Private> 
 
     <HintPath>..\packages\WebGrease.1.5.2\lib\WebGrease.dll</HintPath> 
 
    </Reference> 
 
    <Reference Include="Antlr3.Runtime"> 
 
     <Private>True</Private> 
 
     <HintPath>..\packages\Antlr.3.4.1.9004\lib\Antlr3.Runtime.dll</HintPath> 
 
    </Reference>

Это также конец файла myProject.csproj:

<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\Microsoft.Net.Compilers.1.0.0\build\Microsoft.Net.Compilers.props')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\Microsoft.Net.Compilers.1.0.0\build\Microsoft.Net.Compilers.props'))" /> 
 
    <Error Condition="!Exists('..\packages\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.1.0.0\build\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.props')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.1.0.0\build\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.props'))" /> 
 
    </Target>

Я задаюсь вопросом, почему он дает эту ошибку, принимая во внимание, что этот пакет уже установлен на предыдущем шаге «Самородок Установить». Почему он не может его найти? Я потратил много времени на эту проблему!

ответ

0

На самом деле, это работает для меня:

Добавление отображения (конфигурации репозитория) в папку пакетов в растворе

хранилищу

enter image description here

Nuget Install Config

enter image description here

Затем он работал как шарм.

1

Прежде чем добавить задачу сборки, вы можете добавить задачу установки или восстановления nuget. Это приведет к восстановлению/установке пакетов nuget агента сборки.

+0

Я пробовал оба, но генерировал разные ошибки. Эта ошибка возникает, когда я указываю установку, «Путь к решению» для этой задачи указывает на «packages.config» в каталоге проекта. – Coding

+0

Вы можете лучше всего добавить **/*. Sln в «Путь к решению» или package.config и оставить пустым путь «Путь к NuGet.config». – Peter

Смежные вопросы