.Net 3.5 & VS2010
От: BogdanMart Украина  
Дата: 18.01.13 09:45
Оценка:
Не раз видел в документаци и на форуме, что интеграция с 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 в свойствах проекта + сделают конвертор менее агресивным, чобы не надо было хачить!
Re: .Net 3.5 & VS2010
От: Аноним  
Дата: 01.03.13 15:10
Оценка:
BUMP!
народ ну ответьте хоть что-то.

Реальный метод запуска Немерле 3,5 под 2010 студией.
Наверно и для 2012й студии подойдет!
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.