VS: Описание собственной платформы и mscorlib.dll
От: Albeoris  
Дата: 18.04.16 23:36
Оценка:
Доброго времени суток.
Подскажите, пожалуйста, как добавить в студию собственную платформу, перенаправив путь к mscorlib.dll в другое место?
Интересует такой вот путь:
"C:\Program Files\Unity\Editor\Data\Mono\lib\mono\unity\mscorlib.dll"

Уж не знаю по какой причине, но поставляемый в комплекте с Unity 3.5 Full смотрит в системную директорию, где обитают давно устраевшие файлы.
Свежей платформы найти не удалось.
Придётся писать собственную.
"Хаос всегда побеждает порядок, поскольку лучше организован." (с) Терри Пратчетт
Re: VS: Описание собственной платформы и mscorlib.dll
От: Sinix  
Дата: 19.04.16 07:51
Оценка: 2 (1)
Здравствуйте, Albeoris, Вы писали:

A>Уж не знаю по какой причине, но поставляемый в комплекте с Unity 3.5 Full смотрит в системную директорию, где обитают давно устраевшие файлы.


Вот это должно сработать.

Если не поможет, ключевые слова для поиска — visual studio targeting pack for mono.
Re: VS: Описание собственной платформы и mscorlib.dll
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 19.04.16 08:09
Оценка: 8 (2)
Здравствуйте, Albeoris, Вы писали:

A>Доброго времени суток.

A>Подскажите, пожалуйста, как добавить в студию собственную платформу, перенаправив путь к mscorlib.dll в другое место?
A>Интересует такой вот путь:
A>"C:\Program Files\Unity\Editor\Data\Mono\lib\mono\unity\mscorlib.dll"

Можно в файле проекта добавить проекту свойство FrameworkPathOverride со значением в виде пути к сборкам платформы.
... << RSDN@Home 1.0.0 alpha 5 rev. 0 on Windows 8 6.2.9200.0>>
AVK Blog
Re[2]: VS: Описание собственной платформы и mscorlib.dll
От: Albeoris  
Дата: 19.04.16 08:57
Оценка:
Здравствуйте, Sinix, Вы писали:

S>Если не поможет, ключевые слова для поиска — visual studio targeting pack for mono.

Хм. Отдельную платформу добавить удалось. Пляски с реестром не обязательны, достаточно создать каталог профиля — студия сама его подцепит.
Вот только после подмены DLL, резолвиться они на отрез отказываются:
Не удалось разрешить первичную ссылку "System", которая является сборкой .NET Framework, в целевой инфраструктуре. ".NETFramework,Version=v3.5,Profile=Unity Last". Чтобы исправить эту ошибку, удалите ссылку "System", или измените целевую инфраструктуру приложения на версию, которая содержит "System".


Если добавить HintPath — начинает корректно использоваться. То есть почему-то сборки, лежащие в тех же самых папках, отказываются находитьс (на самом деле понятно почему — ищут то они 3.5, вот только в mono солянка из кучи разных версий от 2.0.5.0 до 3.5).
Пытаюсь разобраться. Может во FrameworkList забить все сборки с их версиями и токенами? Но блин, родной "nity 3.5 .net full Base Class Libraries" как-то же без этого обходится. >_>
"Хаос всегда побеждает порядок, поскольку лучше организован." (с) Терри Пратчетт
Re[2]: VS: Описание собственной платформы и mscorlib.dll
От: Albeoris  
Дата: 19.04.16 09:01
Оценка:
Здравствуйте, AndrewVK, Вы писали:

AVK>Можно в файле проекта добавить проекту свойство FrameworkPathOverride со значением в виде пути к сборкам платформы.


<FrameworkPathOverride>C:\Program Files\Unity\Editor\Data\Mono\lib\mono\unity</FrameworkPathOverride>


Или не работает, или я не правильно задал путь... Пойду смотреть, как правильно.

Не удалось найти какие-либо файлы перераспределения профиля структуры в местоположениях FullFrameworkFolders.
"Хаос всегда побеждает порядок, поскольку лучше организован." (с) Терри Пратчетт
Re[3]: VS: Описание собственной платформы и mscorlib.dll
От: Albeoris  
Дата: 19.04.16 09:19
Оценка:
A>Здравствуйте, AndrewVK, Вы писали:

AVK>>Можно в файле проекта добавить проекту свойство FrameworkPathOverride со значением в виде пути к сборкам платформы.


Работает!
Не знаю — почему он пишет предупреждение, но это работает. DLL'ки подгружаются правильные, процесс построения работает верно.
19.04.2016 12:17:46 |M| Loaded: True

Огромное спасибо!

P.S. Существует какой-нибудь способ подавить ошибку:
MSBuild.ResolveAssemblyReference.NoProfilesFound

?
"Хаос всегда побеждает порядок, поскольку лучше организован." (с) Терри Пратчетт
Отредактировано 19.04.2016 9:30 Albeoris . Предыдущая версия .
Re: VS: Описание собственной платформы и mscorlib.dll
От: alexzzzz  
Дата: 22.04.16 14:02
Оценка:
Здравствуйте, Albeoris, Вы писали:

A>Доброго времени суток.

A>Подскажите, пожалуйста, как добавить в студию собственную платформу, перенаправив путь к mscorlib.dll в другое место?
A>Интересует такой вот путь:
A>"C:\Program Files\Unity\Editor\Data\Mono\lib\mono\unity\mscorlib.dll"

Вопрос из любопытства, что ты хочешь этим добиться? После билда проекта под финальную платформу Unity в этот билд всё равно положит свой mscorlib.dll и прочие dll. Или ты их тоже хочешь подменять?
Re[2]: VS: Описание собственной платформы и mscorlib.dll
От: Albeoris  
Дата: 23.04.16 23:44
Оценка:
A>Вопрос из любопытства, что ты хочешь этим добиться? После билда проекта под финальную платформу Unity в этот билд всё равно положит свой mscorlib.dll и прочие dll. Или ты их тоже хочешь подменять?
Не понял вопроса.
Я хочу, чтобы как в Output'е проекта, так и на этапе компиляции использовалась эта DLL:
C:\Program Files\Unity\Editor\Data\Mono\lib\mono\unity\mscorlib.dll

Собственно, с успехом этого добился благодаря джентльмену выше.
Необходимо для того, чтобы инжектируемая сборка использовала те же самые типы, что и игра во избежании TypeLoadException.
"Хаос всегда побеждает порядок, поскольку лучше организован." (с) Терри Пратчетт
Re[3]: VS: Описание собственной платформы и mscorlib.dll
От: alexzzzz  
Дата: 24.04.16 00:53
Оценка:
Здравствуйте, Albeoris, Вы писали:

A>>Вопрос из любопытства, что ты хочешь этим добиться? После билда проекта под финальную платформу Unity в этот билд всё равно положит свой mscorlib.dll и прочие dll. Или ты их тоже хочешь подменять?

A>Не понял вопроса.

Ага. Это я не понял вопроса. Теперь понял.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.