Не раз видел в документаци и на форуме, что интеграция с 2010 студий несовместима с .Net 3.5. Дескать используете студию 10ю -- используйте немерл под 4й нет.
Я проверил -- все отлично компилирует, если по боротся с самой интеграцией.
Способ как скомпилить:
просто указать в свойствах проекта папку с бинарниками немерла
<Nemerle>C:\Program Files\Nemerle\net-3.5</Nemerle> (для чистоты эксперимента скажу. что мы использовали бинарники, которые лежат внутри нашего проекта <Nemerle>$(SUFRoot)\Nemerle_bin</Nemerle>)
далее мсбилд подхватывет нужную версию и все отлично:
<Import Project="$(Nemerle)\Nemerle.MSBuild.targets" />
Но возникла одна проблемма -- мастер конвертации проектов VS.
Немерл как-то определяет что проект исрользует старую версию и запускат преобразование проекта, в результате переводя все на 4й дотнет, но мы пока не можем позволить себе мигрировать наш проект на 4ку.
Мною был придуман воркараунд:
<NemerleBinPathRoot Condition=" '$(NemerleBinPathRoot)' == '' ">$(ProgramFiles)\Nemerle</NemerleBinPathRoot>
<NoStdLib>true</NoStdLib>
<Nemerle>$(SUFRoot)\Nemerle_bin</Nemerle>
Интеграция видит что вроди 4й дотнет и не психуцет, а МБИЛД игнорирует это, благодаря условию Condition=" '$(NemerleBinPathRoot)' == '' и использует 3.5.
Результат:
В студии интеграция в режиме 4 (благо 4й рантайм нормально загружает сборки с 3го)
А компиоируется все в 3.5.
Может где то и будут ошибки в интеграции, связанные с левым рантаймом, но хоть как то компиоируется.
Я искренне надеюсь что благодаря этому потсу не подправят прожект конвертор, чтобы он обходил мой воркараунд, а наоборот добавят штатную возможность выбрать тулчейн для 3.5 в свойствах проекта + сделают конвертор менее агресивным, чобы не надо было хачить!