Тут вот что происходит:
Студия 32-х битная, поэтому при компиляции в Nemerle.Tools.MSBuildTask попадают ссылки на системные сборки вида
/ref:C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\System.Data.dll
Они появляются как следствие включения этих библиотек в references проекта:
<Reference Include="System.Data"/>
Дальше начинается самое интересное. Поскольку компилятор полностью управляемый, то он запускается как нормальное 64-х разрядное приложение.
И не может загрузить C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\System.Data.dll, т.к. эта сборка есть x86 only
Вот если взять коммандную строчку, передаваемую в компилятор и тупо заменить Microsoft.NET\Framework\v2.0.50727 на Microsoft.NET\Framework
64\v2.0.50727, то всё замечательно работает.
Вопрос, как это можно забороть?
Как вариант, можно дёргать Nemerle.Compiler.dll прямо из студии, как это сделано в питоне. Но это плохая идея, т.к. внешний ncc.exe на 64-х разрядах будет быстрее работать, чем он же в 32-х разрядном WOW'е. И по OutOfMemoryException валится не будет
... << RSDN@Home 1.2.0 alpha rev. 642>>
Под Win64 интеграция замечательно собирается из коммандной строки.
Важно только использовать msbuild не из C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727 а из C:\WINDOWS\Microsoft.NET\Framework
64\v2.0.50727
И скопировать ветку реестра HKLM\
Wow6432Node\Software\Microsoft\VisualStudio в HKLM\Software\Microsoft\VisualStudio, иначе програмки из VSSDK, писанные на .net будут считать что студия не установлена и падать с NullReferenceException.
После сборки можно запустить студию и полюбоваться на нормальный Intellisense. Только F5 нельзя — см. предыдущий топик.
Полноценная поддержка Win64 будет — что где подкрутить ясно, дело за малым — начать и кончить
... << RSDN@Home 1.2.0 alpha rev. 692>>