2016-02-22 4 views
1

Я начал новый веб-проект, используя dnu и dnx. Я смог открыть его в Visual Studio, и все отлично работало. Теперь я установил пакет nuget для SDK для Facebook, но он несовместим с DNX Core 5.0. У меня есть два набора ссылок, один для DNX Core 5.0 и один для DNX 4.5.1. Когда я компилирую, я получаю ошибки, потому что типы не могут быть найдены, хотя я могу правильно их ввести в код и работать с intellisense.Переключение версии DNX в Visual Studio 2015?

Я не могу найти место, где установлена ​​версия. В global.json он говорит, что моя версия «1.0.0-rc1-final», которая выглядит как «clr» runtime, а не «coreclr». Означает ли это, что это 4.5.1? Похоже, что это не имеет отношения к этим версиям.

dnvm versions

Глядя в project.json Я вижу facebook есть только рамки «dnx451», если добавить его в «dnxcore50», то я получаю сообщение об ошибке, что Facebook 7.0.6 не поддерживает DNXCore, версия = V5.0.

"frameworks": { 
    "dnx451": { 
    "dependencies": { 
     "Facebook": "7.0.6" 
    } 
    }, 
    "dnxcore50": { 
    "dependencies": { 
     "Facebook": "7.0.6" 
    } 
    } 
}, 

Поиск всего проекта показывает, что это единственное место, где эти строки существуют. Выполнение рекурсивного grep из командной строки показывает, что существует множество строк с этими строками в путях (т. Е. lib/dnxcore50/). Родитель кажется DNXCore,Version=v5.0.

Делая полный поиск DNX я найти веб-конфигурации имеется запись httpPlatform:

<httpPlatform processPath="%DNX_PATH%" 
     arguments="%DNX_ARGS%" 
     stdoutLogEnabled="false" 
     forwardWindowsAuthToken="false" 
     startupTimeLimit="3600" /> 

Как сказать мой проект, чтобы использовать рамки dnx451?

ответ

3

Если вы продолжаете ссылаться на dnxcore50 как на возможную целевую инфраструктуру, Visual Studio не позволит вам строить, если все ссылочные пакеты не совместимы с ней. Он пытается убедиться, что вы можете запустить приложение на обеих фреймворках.

Вы можете просто удалить dnxcore50 из фреймворков, чтобы удалить зависимости и убедиться, что вы всегда строите dnx451.

"frameworks": { 
    "dnx451": { 
    "dependencies": { 
     "Facebook": "7.0.6" 
    } 
    } 
}, 
+0

OMFG, так просто ... Я думал, что секция была только для каркасных зависящих от зависимостей ... –

+0

Это супер просто на самом деле. Он сочетает в себе как зависимости для каждого фреймворка, так и рамки, на которые вы нацеливаетесь (у вас могут быть определенные зависимости, которые необходимы только для одной структуры). Рад помочь вам. –

+0

Стоит отметить, что цель * dnxcore50 * - это суперчистая новая автономная, ультра портативная и суперкулочная будущая потрясающая функция, но на данный момент она обычно не стоит поддерживать ее в ваших приложениях. –