set MSBuild="%SystemRoot%\Microsoft.NET\Framework\v4.0.30319\msbuild.exe"
%MSBuild% NemerleAll.nproj /tv:4.0 /p:TargetFrameworkVersion=v4.0 /p:VS2012=1 /t:%*
Нерешенные проблемы:
Как определять фреймворки ?
Версия у 4.5 будет 4.0 и в сборке их не отличить. Кому спасибо говорить сами знаете.
Я просто тупо завел переменную VS2012.
Есть идеи получше ?
Неясно как и стоит ли вообще разделять папки net-4.0 и net-4.5 .
С одной стороны одни и те же бинарники должны быть, с другой стороны интеграция разная.
Также неясно как быть с установщиком.
На данный момент устанавливаются в разные директории, иначе установщик для 4.0 удалит файлы от 4.5 и наоборот.
А может и нет, но тогда может быть конфликт версий.
Может пора доделать замену для SRE и иметь один набор бинарников ?
На данный момент интеграция для 2010 и для 2012 лежит в одной папке, стоит ли их разделять ?
Возможно только шаблоны проектов нужно разделить и этого будет достаточно.
С другой стороны в 2012 скорее всего есть другие интерфейсы недоступные для 2010.
Как наладить сборку на сервере TC RSDN ?
Очевидно нужно устанавливать 2012, но видимо только когда выйдет RTM.
Баги: Важно: Не тестировалось на компьютере без VS2010. Если не работает, нужно будет смотреть и чинить.
При создании проекта почему-то пытается его перевести на новый формат.
Скорее есть еще.
Есть желание улучшить , милости просим.
Здравствуйте, fddima, Вы писали:
F>Здравствуйте, _NN_, Вы писали:
F>А что там с тайп форвардами? Вроде бы ж ещё никто не чинил?
Настоящей поддержки TypeForwardedToAttribute нет. Вот это конечно нужно реализовывать.
F>А без них проблематичненько содержать версию 4.0 и 4.5 вместе.
Есть небольшой хак:
Здравствуйте, _NN_, Вы писали:
_NN>Важно: Не тестировалось на компьютере без VS2010. Если не работает, нужно будет смотреть и чинить.
Там была пара багов, из-за которых интеграция в итоге собиралась с VSSDK для 2010, а не 2012. Fixed.
_NN>Теперь можно и в Visual Studio Gallery ставить поддержку 2012
Просто поставить, увы — нельзя в любом случае Во-первых, поскольку это получается другой инсталятор, то придется заводить два расширения в галерее на каждую студию. Во-вторых, в галерее публикуются версии инсталлера, соответствующие тому или иному milestone. Т.е. ночных сборок там нет. А скорее всего, проблем с 2012 будет еще масса и стабильной ее сейчас назвать нельзя. А вот в ночные сборки добавить стоит, IMO, чтобы народ начал тестить.
Здравствуйте, kochetkov.vladimir, Вы писали:
KV>Просто поставить, увы — нельзя в любом случае Во-первых, поскольку это получается другой инсталятор, то придется заводить два расширения в галерее на каждую студию.
Почему 2, надо 3
2008, 2010, 2012.
KV>Во-вторых, в галерее публикуются версии инсталлера, соответствующие тому или иному milestone. Т.е. ночных сборок там нет.
А скорее всего, проблем с 2012 будет еще масса и стабильной ее сейчас назвать нельзя. А вот в ночные сборки добавить стоит, IMO, чтобы народ начал тестить.
Да ладно, сколько там расширений с багами выходят.
Вон VSCommands обновляется чуть ли не каждый день и ничего.
Как раз наоборот в свете выхода 2012, нужно обозначить стабильную отметку и обновить дабы народ заинтересовать.
Здравствуйте, _NN_, Вы писали:
_NN>Кто знает подскажите.
Все оказалось проще. В WIX'е custom action'ы для регистрации в студии (дергающие devenv.exe /setup) называются VS2008Setup и VS2010Setup. ВНЕЗАПНО, аналогичный экшн для 2012 они назвали VS11Setup, а поскольку он импортируется в проект инсталлятора внешней ссылкой, то сообщения об ошибке о неизвестном экшине "VS2012Setup" не было. В итоге, LanguageService не регистрировался в студии после установки.
Fixed, теперь вроде подсвечивает все правильно. Переустанавливать не обязательно, достаточно один раз из-под админа запустить devenv.exe /setup вручную.
Здравствуйте, kochetkov.vladimir, Вы писали:
KV>Fixed, теперь вроде подсвечивает все правильно. Переустанавливать не обязательно, достаточно один раз из-под админа запустить devenv.exe /setup вручную.
Здравствуйте, _NN_, Вы писали:
_NN>Это помогло, а вот через инсталлятор не сработало
А ты с какой версией WIX'а собирал? Нужна последняя текущая бета 3.6, в остальных — этого CA по ходу просто нет. У меня вчера все заработало, вроде на чистой виртуалке проверял.
Там есть еще одна проблема с инсталлером. В Variables.wxi, UpgradeCode и GUID'ы абсолютно всех компонентов должны быть разными у 4.0 и 4.5 также, как сейчас между 3.5 и 4.0. Иначе, при параллельно-установленных 4.0/VS2010 и 4.5/VS2012, после сноса любого из них, будут удалены компоненты и другого (что не есть правильно).
Не знаю в тему это будет тут или нет, но у меня тоже есть определенные проблемы с интеграцией.
У меня была установлена интеграция для VS2010. После установки интеграции к VS2012, VS2010 начала выдавать ошибки в окне редактора кода (некоторые конструкции подчеркиваются красным и попадают в список Errors), хотя при компиляции никаких ошибок нет! Выглядит это примерно так.
Это баг, или by design (установка двух интеграций не будет поддерживаться)?
И нельзя ли сделать так, чтобы можно было под VS2012 писать код для .net4. Хочется писать код в новой студии, а версию .net framework только из-за этого поднимать не хочется.
Здравствуйте, Raimon, Вы писали:
R>Это баг, или by design (установка двух интеграций не будет поддерживаться)?
Попробуй деинсталлировать модуль расширения для 2010-й студии и проинсталлировать его еще раз. По умолчанию он должен лежать по пути "C:\Program Files\Nemerle\Net-4.0\Nemerle.VisualStudio.vsix".
R>И нельзя ли сделать так, чтобы можно было под VS2012 писать код для .net4. Хочется писать код в новой студии, а версию .net framework только из-за этого поднимать не хочется.
4.5 фрэймворка просто не существует. Он устанавливается как раширение 4-го. Так что, если не цеплять новые сбрки, то получаемая сборка должна быть совместима с 4.0.
Собирать же сборки для других версий фрэймворка невозможно. Немерл использует System.Reflection.Emit, который не поддерживает крос-сборку, так как не может работать с mscorlib другой версии.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Здравствуйте, VladD2, Вы писали: VD>Здравствуйте, Raimon, Вы писали:
R>>Это баг, или by design (установка двух интеграций не будет поддерживаться)? VD>Попробуй деинсталлировать модуль расширения для 2010-й студии и проинсталлировать его еще раз. По умолчанию он должен лежать по пути "C:\Program Files\Nemerle\Net-4.0\Nemerle.VisualStudio.vsix".
Его там не будет. Vsix'ы исключены из инсталлера уже где-то с год назад из-за исключительной глючности этого механизма и кучи проблем, связанных с обновлением интеграции из инсталлера. Сейчас инсталлер сам кладет все необходимые файлы в C:\Program Files (x86)\Microsoft Visual Studio 1X.0\Common7\IDE\Extensions\Nemerle и самостоятельно регистрирует пакеты расширения в VS.
Воспроизвести проблему Raimon с двумя параллельно-установленными студиями и интеграциями не смог — у меня все работает и на основной машине и на виртуальной
Здравствуйте, kochetkov.vladimir, Вы писали:
KV>Здравствуйте, VladD2, Вы писали: VD>>Здравствуйте, Raimon, Вы писали:
R>>>Это баг, или by design (установка двух интеграций не будет поддерживаться)? VD>>Попробуй деинсталлировать модуль расширения для 2010-й студии и проинсталлировать его еще раз. По умолчанию он должен лежать по пути "C:\Program Files\Nemerle\Net-4.0\Nemerle.VisualStudio.vsix".
KV>Его там не будет. Vsix'ы исключены из инсталлера уже где-то с год назад из-за исключительной глючности этого механизма и кучи проблем, связанных с обновлением интеграции из инсталлера. Сейчас инсталлер сам кладет все необходимые файлы в C:\Program Files (x86)\Microsoft Visual Studio 1X.0\Common7\IDE\Extensions\Nemerle и самостоятельно регистрирует пакеты расширения в VS.
KV>Воспроизвести проблему Raimon с двумя параллельно-установленными студиями и интеграциями не смог — у меня все работает и на основной машине и на виртуальной
Спасибо, Владимир.
Проблема решилась установкой последней версии интеграции с VS2010, и обновлением референсов на Nemerle сборки (они почему то поломались).