Перевод nemerle на VS 2013/2015
От: vaskir Россия vaskir.blogspot.com
Дата: 17.01.16 15:15
Оценка:
Пытался я собрать Nemerle на голой win 10 + VS 2015 — не вышло. Пришлось ставить VS 2010. Тогда вроде собралось, но солюшен так и не открылся, см. https://github.com/rsdn/nemerle/issues/13307

В общем, хотелось бы:

* Отказаться от поддержки целевой студии старее 2013.
* Отказаться от поддержки сборки в студии старее 2013.
* Target framework 4.5
* Перейти на VS 2013 SDK.

Спрашиваю здесь (вместо того, чтобы пойти да сделать PR) потому что нет уверенности, что данные изменения будут одобрены всеми.
Re: Перевод nemerle на VS 2013/2015
От: pekabon  
Дата: 18.01.16 07:14
Оценка: +1
Здравствуйте, vaskir, Вы писали:

V>Пытался я собрать Nemerle на голой win 10 + VS 2015 — не вышло. Пришлось ставить VS 2010. Тогда вроде собралось, но солюшен так и не открылся, см. https://github.com/rsdn/nemerle/issues/13307


.net 4.0 нужен (для поддержки WinXP)
Re[2]: Перевод nemerle на VS 2013/2015
От: VladD2 Российская Империя www.nemerle.org
Дата: 18.01.16 08:09
Оценка:
Здравствуйте, pekabon, Вы писали:

V>>Пытался я собрать Nemerle на голой win 10 + VS 2015 — не вышло. Пришлось ставить VS 2010. Тогда вроде собралось, но солюшен так и не открылся, см. https://github.com/rsdn/nemerle/issues/13307


P>.net 4.0 нужен (для поддержки WinXP)


Да, скорее всего проблемы из-за этого.

Причем после установки четвертого фреймворка нужно будет восстановить 4.6-й, так как установщик перепишет путь установки на свои каталоги (это иделогический баг Майкрософта).

Как вариант, можно просто переписать имеющийся каталог от 4.6-го дотнета в каталог указываемый в сообщении.

Еще один вариант — задать значение переменной окружения SDKBin указав в ней путь к каталогу с утилитами входящими VS SDK.

ЗЫ

Если кому-то интересно, источник проблем вот в этих строках файла:
<SDKBin Condition="'$(SDKBin)' == '' And ('$(TargetFrameworkVersion)' == '' Or '$(TargetFrameworkVersion)' == 'v2.0' Or '$(TargetFrameworkVersion)' == 'v3.0' Or '$(TargetFrameworkVersion)' == 'v3.5')">$(SDK)\bin</SDKBin>
<SDKBin Condition="'$(SDKBin)' == '' And ('$(TargetFrameworkVersion)' == 'v4.0' Or '$(TargetFrameworkVersion)' == 'v4.5' Or '$(TargetFrameworkVersion)' == 'v4.5.1')">$(SDK_3)\bin\NETFX 4.0 Tools</SDKBin>


Видимо при сочетании свежей Windows 10 и VS2015 каталога "bin\NETFX 4.0 Tools" нет.

К сожалению, машины с чистой Windows 10 и VS2015 под рукой нет, чтобы проверить.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re: Перевод nemerle на VS 2013/2015
От: VladD2 Российская Империя www.nemerle.org
Дата: 24.01.16 13:30
Оценка:
Здравствуйте, vaskir, Вы писали:

V>В общем, хотелось бы:


V>* Отказаться от поддержки целевой студии старее 2013.

V>* Отказаться от поддержки сборки в студии старее 2013.
V>* Target framework 4.5
V>* Перейти на VS 2013 SDK.

Это все есть. Проблема в том, что в Windows 10 при установке VS2015 .Net SDK ставится в каталог отличный от того что использовался раньше.

Я подправил билд-сктипт. По идее теперь должно собраться корректно.

Попробуй, плиз, и отпиши сюда что получилось.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[2]: Перевод nemerle на VS 2013/2015
От: vaskir Россия vaskir.blogspot.com
Дата: 25.01.16 08:48
Оценка:
VD>Я подправил билд-сктипт. По идее теперь должно собраться корректно.
VD>Попробуй, плиз, и отпиши сюда что получилось.

1. Установлен последний инсталлер с сайта.
2. DevBuildQuick-VS2015.cmd отработал без ошибок.
3. При открытии/билде любого nemerle проекта получаем

C:\Program Files (x86)\Nemerle\Net-4.0\Nemerle.MSBuild.targets(289,5): 
error : Could not load file or assembly 'Nemerle, Version=1.2.0.486, Culture=neutral, PublicKeyToken=e080a9c724e2bfcd' or one of its dependencies. 
The system cannot find the file specified.


Вообще по идее должно быть так: правим код nemerle (компайлер, интеграция), запускаем DevBuildQuick-VS2015.cmd, запускаем студию — всё обновилось. Так?
Re[3]: Перевод nemerle на VS 2013/2015
От: VladD2 Российская Империя www.nemerle.org
Дата: 25.01.16 09:40
Оценка: 10 (1)
Здравствуйте, vaskir, Вы писали:

V>1. Установлен последний инсталлер с сайта.


Вот это делать, при сборке немерла с исходников, ни в коем случае не надо.

Сделай "репэйр", а потом деинсталлируй его.

V>
V>C:\Program Files (x86)\Nemerle\Net-4.0\Nemerle.MSBuild.targets(289,5): 
V>error : Could not load file or assembly 'Nemerle, Version=1.2.0.486, Culture=neutral, PublicKeyToken=e080a9c724e2bfcd' or one of its dependencies. 
V>The system cannot find the file specified.
V>


Довольно естественно. Можно или инсталлировать немерл, или собирать из исходников.

Еще одна проблема заключается в том, что при сборке интеграция не денисталлируется. Так что перед сборкой нужно зайти в "Tools\Extensions and Updates..." и деинсталлировать Nemerle.

V>Вообще по идее должно быть так: правим код nemerle (компайлер, интеграция), запускаем DevBuildQuick-VS2015.cmd, запускаем студию — всё обновилось. Так?


Примерно, за исключением того, что деинсталляцию иетеграции нужно делать и не нужно перед этим устанавливать немерл через msi.

Как наладить автоматическую деинсталляцию немерловой интеграции не ясно. Там Хардкейс что-то нахимичил (в свое время). Раньше игтеграция ставилась средствами VS SDK, но мы от этой зависимости избавились плюс там были какие-то проблемы. Но вот с тех пор надо удалять интеграцию вручную.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[4]: Перевод nemerle на VS 2013/2015
От: vaskir Россия vaskir.blogspot.com
Дата: 29.01.16 17:43
Оценка:
VD>Довольно естественно. Можно или инсталлировать немерл, или собирать из исходников.

VD>Еще одна проблема заключается в том, что при сборке интеграция не денисталлируется. Так что перед сборкой нужно зайти в "Tools\Extensions and Updates..." и деинсталлировать Nemerle.


Деинсталлировал из windows, деинсталлировал из студии. Прогнал DevBuildQuick-VS2015.cmd — то же самое:



Видимо, что-то застряло в гаке или еще где
Re[5]: Перевод nemerle на VS 2013/2015
От: vaskir Россия vaskir.blogspot.com
Дата: 29.01.16 20:14
Оценка:
Мой макро проект ссылался на старую Nemerle.ActivePatterns с LocalCopy = true. Удалил, убрал active match и ошибка исчезла.
Re[5]: Перевод nemerle на VS 2013/2015
От: VladD2 Российская Империя www.nemerle.org
Дата: 30.01.16 07:39
Оценка:
Здравствуйте, vaskir, Вы писали:

V>Image: ee9c56ca-c6c8-11e5-86c9-cc4b9c2446c8.png


V>Видимо, что-то застряло в гаке или еще где


1. Деинсталируй плагин из студии.
2. Грохни каталоги ...\nemerle\bin и ...\nemerle\obj.
3. Пересобери немерл вызовом DevBuildQuick-VS2015.cmd.

Все должно заработать.

Если не заработает, поставь себе TeamViewer и постучись ко мне по скайпу vc.rsdn.ru. Разберемся локально.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[6]: Перевод nemerle на VS 2013/2015
От: vaskir Россия vaskir.blogspot.com
Дата: 30.01.16 09:48
Оценка:
VD>Если не заработает, поставь себе TeamViewer и постучись ко мне по скайпу vc.rsdn.ru. Разберемся локально.

Спасибо за предложение! Уже разобрался: http://rsdn.ru/forum/nemerle/6329059.1
Автор: vaskir
Дата: 29.01.16
Кстати, Nemerle.ActivePatterns не собирается DevBuildQuick-VS2015.cmd. Это печально.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.