Как проект ASP.NET CORE в решении VS2015 разрешает ссылки на другие библиотеки?

Как проект ASP.NET CORE в решении VS2015 (VS2015 с обновлением 3) разрешает ссылки на другие проекты библиотеки .Net Core в том же решении (см. структуру проекта ниже)? У местного разработчика, использующего VS2015, нет никаких проблем, но шаг «Сборка Visual Studio» в VSTS не ссылается на правильную версию библиотек .Net Core.

(все проекты являются частью одного и того же решения, но находятся в разных папках на жестком диске)

MySolution.sln__contains__My .NET CORE Library Project #1"

MySolution.sln__contains__My .NET CORE Library Project #2"

MySolution.sln__содержит____CORE проект__ссылка на проект №1 и проект №2"

Вот как другие проекты упоминаются в файле project.json:

"dependencies": {
    "LibraryProject1": "1.0.1-*",
    "LibraryProject2": "1.0.1-*",
    }

На данный момент, чтобы заставить его работать, я должен изменить номер версии для каждой основной библиотеки .Net, чтобы убедиться, что шаг сборки решения в VSTS выбирает правильную версию.

Опять же, разработчики не сталкиваются с этой проблемой.


person MuazzamAli    schedule 06.01.2017    source источник
comment
Поскольку инструментарий теперь переносится в Visual Studio 2017 RC, можете ли вы обновить его и попробовать еще раз? Новый формат проекта на основе MSBuild должен лучше работать с существующими инструментами, такими как TFS/VSTS.   -  person Lex Li    schedule 07.01.2017
comment
Я не могу воспроизвести эту проблему, хотя в корневой папке решения есть файл global.json. Какие шаги сборки? Можете ли вы поделиться проектом на OneDrive, который может воспроизвести эту проблему?   -  person starian chen-MSFT    schedule 09.01.2017
comment
@starain-MSFT: Вот этапы сборки, которым я следовал:visualstudio.com/en-us/docs/build/apps/aspnet/   -  person MuazzamAli    schedule 15.02.2017


Ответы (1)


В корневой папке решения должен быть файл global.json. И его раздел projects — это то, что вы ищете (от документ):

Указывает, в каких папках система сборки должна искать проекты при разрешении зависимостей. Система сборки будет искать только дочерние папки верхнего уровня.

person Set    schedule 08.01.2017
comment
Спасибо за быстрый ответ. Это помогло и указало мне правильное направление. Моя структура папок такова: C:\Applib\webProject\global.json (файл решения тоже находится в этой папке), C:\Lib\Project1, C:\Lib\Project2. Я попытался добавить относительные пути в файл global.json, но он все равно не работает. Единственный способ заставить его работать - переместить проекты lib в ту же папку, что и решение и global.json? - person MuazzamAli; 09.01.2017
comment
@MuazzamAli AFAIK можно указать путь к любой папке, и можно использовать как относительный, так и абсолютный путь. Имейте в виду, что система сборки будет искать только дочерние папки верхнего уровня. Если ваши файлы project.json находятся в C:\Lib\Project1\project.json и C:\Lib\Project2\project.json, то этот относительный путь должен работать: '..\..\Lib' (или относительный путь 'C:\Библиотека') - person Set; 09.01.2017
comment
Спасибо за ответ. Я пробовал все комбинации относительных путей, и это все еще не работает. Я попробую переместить его в ту же папку и посмотреть, сработает ли это. Если нет, то я пропущу сборку VS и переключусь на DOTNET RESTORE, указав папки пакетов nuget для библиотек. - person MuazzamAli; 10.01.2017