Добавление референсов x64 vs x86
От: fddima  
Дата: 10.07.12 16:30
Оценка:
Добрый день!

Добавил референс на Nemerle.Peg / Nemerle.Peg.Macros в студии на x64 машине.
Открыл проект на x86 машине — и не удаётся найти референс.
При том и там и там ставил 1.1.772 инсталлятором.
В файле проекта лежит оказывается такое (т.е. C:\Program Files (x86)).
    <Reference Include="Nemerle.Peg, Version=1.1.772.0, Culture=neutral, PublicKeyToken=null">
      <Name>Nemerle.Peg</Name>
      <AssemblyName>Nemerle.Peg.dll</AssemblyName>
      <HintPath>C:\Program Files (x86)\Nemerle\net-4.0\Nemerle.Peg.dll</HintPath>
    </Reference>

Как с этим бороться, учитывая что разработка ведётся на обоих платформах (x86 и x64)?
(На x64 хосте в C:\Program Files\Nemerle — отсутствует после инсталляции).
Re: Добавление референсов x64 vs x86
От: fddima  
Дата: 10.07.12 16:36
Оценка:
Здравствуйте, fddima, Вы писали:

Да, забыл сказать, что сам билд работает нормально даже с такими хинтами, но интеграция ругается, и довольно сильно:

Error 3 cannot load assembly with macros `C:\Program Files (x86)\Nemerle\net-4.0\Nemerle.Peg.Macros.dll'
Error 2 parse error near `{...}' group: unexpected token after expression in sequence (you forget a closing bracket?).
Error 1 expected `;'

Re: Добавление референсов x64 vs x86
От: fddima  
Дата: 10.07.12 16:43
Оценка:
Здравствуйте, fddima, Вы писали:

Эм, ну руками заменил с использованием $(NemerleBinPathRoot) — это понятно... Но это не правильно (хотя бы само что-ли должно такие хинты генерить).

После этого появилось:

Warning 1 could not save generated source code file: Could not find a part of the path '...\bin\Debug\IDE\_N_GeneratedSource_....n'.


После того как в каталоге obj руками создал каталог IDE — всё случилось, никаких ворнингов, а файл сгенерирован.
Re: Добавление референсов x64 vs x86
От: fddima  
Дата: 10.07.12 16:48
Оценка:
Здравствуйте, fddima, Вы писали:

Ну и напоследок: В MSBuild "принято" создавать пути к директориям в переменных с концевыми слешами.

    <NemerleVersion>Net-4.0</NemerleVersion>
    <NemerleBinPathRoot Condition=" '$(NemerleBinPathRoot)' == '' ">$(ProgramFiles)\Nemerle</NemerleBinPathRoot>
    <Nemerle Condition=" '$(Nemerle)' == '' ">$(NemerleBinPathRoot)\$(NemerleVersion)</Nemerle>


Т.е. мы клеем $(NemerleBinPathRoot)net-4.0\Nemerle.Peg.dll, а не $(NemerleBinPathRoot)\net-4.0\Nemerle.Peg.dll. И кстати NemerleBinPathRoot в environment указан с концевым слешем.
Т.е. мы должны быть готовы к склейне $(Nemerle)Nemerle.Peg.dll, а не $(Nemerle)\Nemerle.Peg.dll.
Это может упростить кому-нибудь жизнь, ну а остальным — создаст двойной слеш в пути, который как бы вполне валиден.

PS: C# проекты отслеживают ручное изменение файла проекта в интеграции, а для N — вроде как нет.
Re: Добавление референсов x64 vs x86
От: VladD2 Российская Империя www.nemerle.org
Дата: 10.07.12 22:10
Оценка: +2
Здравствуйте, fddima, Вы писали:

F>Добрый день!


F>В файле проекта лежит оказывается такое (т.е. C:\Program Files (x86)).

F>
F>    <Reference Include="Nemerle.Peg, Version=1.1.772.0, Culture=neutral, PublicKeyToken=null">
F>      <Name>Nemerle.Peg</Name>
F>      <AssemblyName>Nemerle.Peg.dll</AssemblyName>
F>      <HintPath>C:\Program Files (x86)\Nemerle\net-4.0\Nemerle.Peg.dll</HintPath>
F>    </Reference>
F>


Странный какой-то референс. На сборки немерла должно подставляться использование свойства Nemerle.
Поменяй в проекта ссылку на:
    <Reference Include="Nemerle.Peg">
      <AssemblyName>Nemerle.Peg.dll</AssemblyName>
      <SpecificVersion>False</SpecificVersion>
      <HintPath>$(Nemerle)\Nemerle.Peg.dll</HintPath>
    </Reference>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[2]: Добавление референсов x64 vs x86
От: Димчанский Литва http://dimchansky.github.io/
Дата: 20.07.12 12:34
Оценка:
Я тоже руками правил референсы с использованием $(Nemerle), т.к. иначе они добавляются с полным путем.
... << RSDN@Home 1.2.0 alpha 5 rev. 1539>>
Re[3]: Добавление референсов x64 vs x86
От: VladD2 Российская Империя www.nemerle.org
Дата: 20.07.12 15:36
Оценка:
Здравствуйте, Димчанский, Вы писали:

Д>Я тоже руками правил референсы с использованием $(Nemerle), т.к. иначе они добавляются с полным путем.


По идее новые версии должны сами это свойство использовать. Если это не так, то опиши куда поставлен немерл и какая версия.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[4]: Добавление референсов x64 vs x86
От: fddima  
Дата: 20.07.12 15:38
Оценка:
Здравствуйте, VladD2, Вы писали:

Д>>Я тоже руками правил референсы с использованием $(Nemerle), т.к. иначе они добавляются с полным путем.

VD>По идее новые версии должны сами это свойство использовать. Если это не так, то опиши куда поставлен немерл и какая версия.
Я использовал на Windows 7 x86 и x64 — NemerleSetup-net-4.0-v1.1.772.0-nightly.msi, ставил всё по дефолту — симптомы одинаковы на обоих машинах.
Re[5]: Добавление референсов x64 vs x86
От: Димчанский Литва http://dimchansky.github.io/
Дата: 23.07.12 07:47
Оценка:
Здравствуйте, fddima, Вы писали:

F> Я использовал на Windows 7 x86 и x64 — NemerleSetup-net-4.0-v1.1.772.0-nightly.msi, ставил всё по дефолту — симптомы одинаковы на обоих машинах.


У меня аналогочно, что на Windows XP x86, что на Windows 7 x64. Ставил тоже по дефолту.
При создании проекта, референс на Nemerle.dll в проекте прописывается как надо, с использованием $(Nemerle), но если добавляешь дополнительные референсы на другие сборки Nemerle, то они с абсолютным путем прописываются.
... << RSDN@Home 1.2.0 alpha 5 rev. 1539>>
Re[6]: Добавление референсов x64 vs x86
От: VladD2 Российская Империя www.nemerle.org
Дата: 23.07.12 11:05
Оценка:
Здравствуйте, Димчанский, Вы писали:

Д>У меня аналогочно, что на Windows XP x86, что на Windows 7 x64. Ставил тоже по дефолту.

Д>При создании проекта, референс на Nemerle.dll в проекте прописывается как надо, с использованием $(Nemerle), но если добавляешь дополнительные референсы на другие сборки Nemerle, то они с абсолютным путем прописываются.

Значит что-то сломалось. Добавьте issue.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[7]: Добавление референсов x64 vs x86
От: Димчанский Литва http://dimchansky.github.io/
Дата: 23.07.12 11:20
Оценка:
Здравствуйте, VladD2, Вы писали:

VD>Значит что-то сломалось. Добавьте issue.


Да простят меня за мой французский, но вот добавил issue.
... << RSDN@Home 1.2.0 alpha 5 rev. 1539>>
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.