Зависимость от библиотеки Nemerle разрушает интеграцию VS2017
От: STDray http://stdray.livejournal.com
Дата: 01.11.17 15:23
Оценка:
Привет!


На новую Win10, установил VS2017 и актуальный Nemerle (v1.2.547.0 (2017-09-01)).
Проблема в том, что когда я добавляю зависимость от проекта Nemerle, то крашится интеграция студии.
Вот видео, с минимальным примером воспроизведения проблемы:
https://youtu.be/oshKxuDkD_4

У кого-то что-то подобное происходит? И есть ли идеи как фиксить?
Потому что перепаковывать все Nemerle-проекты в кучу транзитивно зависимых библиотек очень не хочется.
Re: Зависимость от библиотеки Nemerle разрушает интеграцию VS2017
От: VladD2 Российская Империя www.nemerle.org
Дата: 01.11.17 16:49
Оценка:
Здравствуйте, STDray, Вы писали:

STD>У кого-то что-то подобное происходит? И есть ли идеи как фиксить?


Проделал все вышеперечисленное как на скомпилированном локально Немерле, так и на установленном последним инсталлятором с сайта. Все — ОК.

Запусти экземпляр студии. Воспроизведи действия до того момента когда ты добавляешь ссылку на проект. Далее загрузи еще один экземпляр студии и приатачься им к превой студии (процесс devenv.exe). Зайди в настройки перехвата исключений и установи перехват всех исключений. Переключись в первый экземляр и попытайся добавить ссылку на проект. Если вылетит какое-нибудь исключение, кинь колстэк сюда.

Ну, а чтобы избавиться попробуй немерле переустановит.
Деинсталлируй Немерл (через Settings). Зайти в студию и убедись, что плагина нет. Если есть, снеси явно. Потом попробуй поставить еще рез. Перед этим убедись, что C:\Program Files (x86)\Nemerle\Net-4.0 ничего нет. Если там что-то есть (после деинсталяции) удали этот каталог.

Еще стоит по удалять разные левые расширения. Может это они виноваты.

STD>Потому что перепаковывать все Nemerle-проекты в кучу транзитивно зависимых библиотек очень не хочется.


Это вообще не понял.
http://nemerle.org/Banners/?g=dark
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[2]: Зависимость от библиотеки Nemerle разрушает интеграцию VS2017
От: STDray http://stdray.livejournal.com
Дата: 01.11.17 17:16
Оценка:
Здравствуйте, VladD2, Вы писали:

VD>Запусти экземпляр студии. Воспроизведи действия до того момента когда ты добавляешь ссылку на проект. Далее загрузи еще один экземпляр студии и приатачься им к превой студии (процесс devenv.exe). Зайди в настройки перехвата исключений и установи перехват всех исключений. Переключись в первый экземляр и попытайся добавить ссылку на проект. Если вылетит какое-нибудь исключение, кинь колстэк сюда.

System.Runtime.InteropServices.COMException occurred
  HResult=0x80004005
  Message=Неопознанная ошибка (Exception from HRESULT: 0x80004005 (E_FAIL))
  Source=
  StackTrace:
   at EnvDTE.Configuration.get_Properties()
   at Microsoft.VisualStudio.Project.ProjectReferenceNode.get_ReferencedProjectOutputPath()
   at Nemerle.VisualStudio.Project.ProjectInfo.GetAssemblyReferencesString(ReferenceNode node)
   at Nemerle.VisualStudio.Project.ProjectInfo.AddAssembly(List`1 assemblies, ReferenceNode node, String type)
   at Nemerle.VisualStudio.Project.NemerleReferenceContainerNode.AddChild(HierarchyNode node)
   at Microsoft.VisualStudio.Project.ReferenceNode.AddReference()
   at Microsoft.VisualStudio.Project.ProjectReferenceNode.AddReference()
   at Microsoft.VisualStudio.Project.ReferenceContainerNode.AddReferenceFromSelectorData(VSCOMPONENTSELECTORDATA selectorData, String wrapperTool)
   at Nemerle.VisualStudio.Project.NemerleProjectNode.AddComponent(VSADDCOMPOPERATION dwAddCompOperation, UInt32 cComponents, IntPtr[] rgpcsdComponents, IntPtr hwndDialog, VSADDCOMPRESULT[] pResult)



VD>Ну, а чтобы избавиться попробуй немерле переустановит.

VD>Деинсталлируй Немерл (через Settings). Зайти в студию и убедись, что плагина нет. Если есть, снеси явно. Потом попробуй поставить еще рез. Перед этим убедись, что C:\Program Files (x86)\Nemerle\Net-4.0 ничего нет. Если там что-то есть (после деинсталяции) удали этот каталог.
Уже сделал, на всякий случай, перед тем как получить стектрейс еще раз переустановил с очисткой. Пытаюсь собрать BuildInstallerFull-4.cmd, но пока тоже не выходит.

  Скрытый текст
List.n(1049,22,1049,32): error : typing fails on ambiguity between overloads: [C:\prj\community\nemerle\snippets\Nemerle.Statechart\Lib\Nemerle.Statechart.Lib.nproj]
List.n(1049,22,1049,32): warning : hint:   Posible overload: method Nemerle.Statechart.ListUtils.Append(lst : System.Collections.Generic.IEnumerable[T], elem : T) : System.Collections.Generic.IEnumerable[T] [C:\prj\community\nemerle\snippets\Nemerle.Statechart\Lib\Nemerle.Statechart.Lib.nproj]
List.n(1039,5,1039,5): warning : hint: overload definition [C:\prj\community\nemerle\snippets\Nemerle.Statechart\Lib\Nemerle.Statechart.Lib.nproj]
List.n(1049,22,1049,32): warning : hint:   Posible overload: method System.Linq.Enumerable.Append(source : System.Collections.Generic.IEnumerable[TSource], element : TSource) : System.Collections.Generic.IEnumerable[TSource] [C:\prj\community\nemerle\snippets\Nemerle.Statechart\Lib\Nemerle.Statechart.Lib.nproj]
Построение проекта "C:\prj\community\nemerle\snippets\Nemerle.Statechart\Lib\Nemerle.Statechart.Lib.nproj" завершено (целевые объекты по умолчанию) с ошибкой.


VD>Еще стоит по удалять разные левые расширения. Может это они виноваты.

Сейчас попробую сделать им всем Disable. Но вообще все работало, пока я не установил Win10 с нуля. До того тоже была Win10, но полученная путем обновлений, плюс кроме 2017 стояли вся студии начиная с 2010 чтоль.

STD>>Потому что перепаковывать все Nemerle-проекты в кучу транзитивно зависимых библиотек очень не хочется.

VD>Это вообще не понял.
Ну я обернул один Nemerle-проект в nuget-пакет и интеграция на проектах, которые зависят от него заработала. Проблема в том, что обернуть придётся много всего.
Re: Зависимость от библиотеки Nemerle разрушает интеграцию VS2017
От: VladD2 Российская Империя www.nemerle.org
Дата: 01.11.17 19:49
Оценка:
Здравствуйте, STDray, Вы писали:

STD>На новую Win10, установил VS2017


А апдэйты на VS2017 ты поставил? Если нет, то попробуй установить последний апдйэт.

ЗЫ

Покажи что за версию у тебя в About показывает.
http://nemerle.org/Banners/?g=dark
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[3]: Зависимость от библиотеки Nemerle разрушает интеграци
От: VladD2 Российская Империя www.nemerle.org
Дата: 01.11.17 19:51
Оценка:
Здравствуйте, STDray, Вы писали:

STD>Уже сделал, на всякий случай, перед тем как получить стектрейс еще раз переустановил с очисткой. Пытаюсь собрать BuildInstallerFull-4.cmd, но пока тоже не выходит.


Для локальной сборки надо не этот батник запускать, а DevBuildQuick-VS2015.cmd.
http://nemerle.org/Banners/?g=dark
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Отредактировано 01.11.2017 20:21 VladD2 . Предыдущая версия .
Re: Зависимость от библиотеки Nemerle разрушает интеграцию VS2017
От: VladD2 Российская Империя www.nemerle.org
Дата: 01.11.17 20:23
Оценка:
Здравствуйте, STDray, Вы писали:

STD>Вот видео, с минимальным примером воспроизведения проблемы:

STD>https://youtu.be/oshKxuDkD_4

Пусть эта ссылка в этой теме будет.

https://book2s.com/csharp/src/microsoft/visualstudiotools/project/projectreferencenode.htm

Это более новая реализация данного класса от МС. Если ничего не поможет, можно попробовать этот код использовать.

Но почти уверен, что дело все же в твоей студии или левых плагинах. Судя по колстэку, вылет при попытке получить доступ к свойствам проекта.
http://nemerle.org/Banners/?g=dark
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[4]: Зависимость от библиотеки Nemerle разрушает интеграци
От: STDray http://stdray.livejournal.com
Дата: 01.11.17 21:47
Оценка:
Здравствуйте, VladD2, Вы писали:

STD>>Уже сделал, на всякий случай, перед тем как получить стектрейс еще раз переустановил с очисткой. Пытаюсь собрать BuildInstallerFull-4.cmd, но пока тоже не выходит.

VD>Для локальной сборки надо не этот батник запускать, а DevBuildQuick-VS2015.cmd.

Я думал, BuildInstallerFull-4 нужен для сборки инсталятора. И странно, что тот не собирается.
Re[2]: Зависимость от библиотеки Nemerle разрушает интеграцию VS2017
От: STDray http://stdray.livejournal.com
Дата: 01.11.17 21:49
Оценка: 56 (1)
Здравствуйте, VladD2, Вы писали:

VD>Но почти уверен, что дело все же в твоей студии или левых плагинах. Судя по колстэку, вылет при попытке получить доступ к свойствам проекта.

Я тогда сегодня попробую поставить в витуралку винду с другого образа и студию community edition, после чего станет ясно, насколько воспроизводима проблема.
Re[5]: Зависимость от библиотеки Nemerle разрушает интеграци
От: VladD2 Российская Империя www.nemerle.org
Дата: 01.11.17 23:12
Оценка:
Здравствуйте, STDray, Вы писали:

STD>Я думал, BuildInstallerFull-4 нужен для сборки инсталятора. И странно, что тот не собирается.


А зачем тебе инсталлятор? Он от того что на сайте отличаться не будет.
http://nemerle.org/Banners/?g=dark
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[3]: Зависимость от библиотеки Nemerle разрушает интеграцию VS2017
От: STDray http://stdray.livejournal.com
Дата: 02.11.17 14:04
Оценка:
STD>Я тогда сегодня попробую поставить в витуралку винду с другого образа и студию community edition, после чего станет ясно, насколько воспроизводима проблема.

Установил винду, с образа, который создает майкрософтовская утилита. Установил студию community edition из установщика с сайта. Проблема воспроизводится. С тем лишь исключением, что сначала вылезла более странная ошибка, которая исчезла, после того как я доставил компоненты asp.net.
http://imageshack.com/a/img923/7450/mbWeS9.png


В остальном все тоже самое.
http://imageshack.com/a/img924/4856/9Opzjw.png
Re[6]: Зависимость от библиотеки Nemerle разрушает интеграци
От: STDray http://stdray.livejournal.com
Дата: 02.11.17 14:07
Оценка:
Здравствуйте, VladD2, Вы писали:

VD>А зачем тебе инсталлятор? Он от того что на сайте отличаться не будет.

С помощью сборки инсталлятора я хочу удостоверится, что у меня есть все необходимые компоненты и всё отрабатывает корректно. И от того что на сайте мой инсталятор отличается тем, что не собрался, а это странно

ЗЫ:
Дело в методе https://msdn.microsoft.com/en-us/library/mt823360(v=vs.110).aspx, который появился в 2.7.1 и вызывает конфликт.
Отредактировано 02.11.2017 14:29 STDray . Предыдущая версия .
Re[7]: Зависимость от библиотеки Nemerle разрушает интеграци
От: VladD2 Российская Империя www.nemerle.org
Дата: 02.11.17 15:52
Оценка:
Здравствуйте, STDray, Вы писали:

STD>ЗЫ:

STD>Дело в методе https://msdn.microsoft.com/en-us/library/mt823360(v=vs.110).aspx, который появился в 2.7.1 и вызывает конфликт.

Это с чего ты это взял?

По твоему колстэку этого не скажешь.
http://nemerle.org/Banners/?g=dark
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[8]: Зависимость от библиотеки Nemerle разрушает интеграци
От: STDray http://stdray.livejournal.com
Дата: 02.11.17 16:13
Оценка:
Здравствуйте, VladD2, Вы писали:

VD>Это с чего ты это взял?

VD>По твоему колстэку этого не скажешь.

Это я про ошибку в сборке инсталятора (фикс), а не про исходную проблему с падением интеграции.
Re[4]: Зависимость от библиотеки Nemerle разрушает интеграци
От: STDray http://stdray.livejournal.com
Дата: 02.11.17 17:05
Оценка:
Здравствуйте, VladD2, Вы писали:

VD>Для локальной сборки надо не этот батник запускать, а DevBuildQuick-VS2015.cmd.

Я так понимаю, что надо что-то надо создать отдельный батник для студии 2017. Потому что у нее другая версия.
Написал по аналогии вот таких батников (коммит), но расширение не ставится

Ошибка вот такая
02.11.2017 19:56:40 - Found 'C:\PROGRAM FILES (X86)\MICROSOFT VISUAL STUDIO\2017\PROFESSIONAL\COMMON7\IDE\COMMONEXTENSIONS\DataDesign\extension.vsixmanifest'
02.11.2017 19:56:40 - Capping recursion at 5 directories in each extension root due to 'default limit'.
02.11.2017 19:56:40 - Found 'C:\USERS\KARPOV\APPDATA\LOCAL\MICROSOFT\VISUALSTUDIO\15.0_4642F70E\EXTENSIONS\JetBrains\ReSharperPlatformVs15\extension.vsixmanifest'
02.11.2017 19:56:40 - Skipping 'C:\Program Files (x86)\Common Files\Microsoft\ExtensionManager\Extensions' as it doesn't exist
02.11.2017 19:56:40 - Skipping 'C:\Users\karpov\AppData\Local\Microsoft SDKs' as it doesn't exist
02.11.2017 19:56:40 - Расширение с идентификатором "FFFFeaae-d2c0-461d-8ff6-b3bc8d67bcfe" не установлено в Visual Studio Professional 2017.
02.11.2017 19:56:40 - Найден установленный продукт - Visual Studio Build Tools 2017 (2)
02.11.2017 19:56:40 - System.NullReferenceException: Ссылка на объект не указывает на экземпляр объекта.
   в Microsoft.VisualStudio.ExtensionManager.EngineUtilities.TryGetProductVersion(String productVersionString, Version& productVersion)
   в Microsoft.VisualStudio.ExtensionManager.EngineUtilities.TryGetProductVersionFromPath(String path, Version& productVersion)
   в VSIXInstaller.SupportedVSSKU.get_VersionWithBuildRevisionInfo()
   в VSIXInstaller.App.IsValidSKUForExtension(SupportedVSSKU supportedSKU, IExtension extension, List`1 validSKUs)
   в VSIXInstaller.App.ShouldAddSkuToValidSkuList(SupportedVSSKU sku, IInstallableExtension extension, List`1 validSKUs)
   в VSIXInstaller.App.GetInstallableData(String vsixPath, Boolean isRepairSupported, IEnumerable`1& skuData)
   в VSIXInstaller.App.Initialize(Boolean isRepairSupported)
   в VSIXInstaller.App.Initialize()
   в System.Threading.Tasks.Task`1.InnerInvoke()
   в System.Threading.Tasks.Task.Execute()


Чет совсем не идут дела.
Re[5]: Зависимость от библиотеки Nemerle разрушает интеграци
От: STDray http://stdray.livejournal.com
Дата: 02.11.17 17:38
Оценка:
VD>>Для локальной сборки надо не этот батник запускать, а DevBuildQuick-VS2015.cmd.
STD>Я так понимаю, что надо что-то надо создать отдельный батник для студии 2017. Потому что у нее другая версия.
STD>Написал по аналогии вот таких батников (коммит), но расширение не ставится

STD>Чет совсем не идут дела.


У меня почему-то было два инстанса студии (https://github.com/aws/aws-lambda-dotnet/issues/171#issuecomment-335942113), предположительно из-за того, что сначала по невнимательности поставил русскую версию, потом английскую. Один удалил, после чего расширение встало нормально.

И проблема с интеграцией исчезла!

Какие мы можем сделать из этого выводы?
Re[9]: Зависимость от библиотеки Nemerle разрушает интеграци
От: VladD2 Российская Империя www.nemerle.org
Дата: 02.11.17 18:05
Оценка:
Здравствуйте, STDray, Вы писали:

STD>Это я про ошибку в сборке инсталятора (фикс), а не про исходную проблему с падением интеграции.


А. На сервере немерл собирается на 7-й винде с фреймворком 4.0. Так что это лучше не трогать, а то сборка может отвалиться. Или надо так править, чтобы и с 4.0 все собиралось.
http://nemerle.org/Banners/?g=dark
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[5]: Зависимость от библиотеки Nemerle разрушает интеграци
От: VladD2 Российская Империя www.nemerle.org
Дата: 02.11.17 18:09
Оценка:
Здравствуйте, STDray, Вы писали:

VD>>Для локальной сборки надо не этот батник запускать, а DevBuildQuick-VS2015.cmd.

STD>Я так понимаю, что надо что-то надо создать отдельный батник для студии 2017. Потому что у нее другая версия.

У меня и других все собирается. Если у тебя не собирается, возможно надо запускать сборки из под "Developer Command Prompt for VS 2017" (т.е. C:\VS2017\Common7\Tools\VsDevCmd.bat), так как у тебя могут быть не прописаны пути к мсбилду.

STD>Написал по аналогии вот таких батников (коммит), но расширение не ставится


STD>Чет совсем не идут дела.


Ты мня можешь пустить через TeamViewer на свою машину? Может в интерактивном режиме будет понятнее, что там у тебя происходит.
http://nemerle.org/Banners/?g=dark
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[6]: Зависимость от библиотеки Nemerle разрушает интеграци
От: STDray http://stdray.livejournal.com
Дата: 02.11.17 18:26
Оценка:
Здравствуйте, VladD2, Вы писали:

VD>Здравствуйте, STDray, Вы писали:


VD>>>Для локальной сборки надо не этот батник запускать, а DevBuildQuick-VS2015.cmd.

STD>>Я так понимаю, что надо что-то надо создать отдельный батник для студии 2017. Потому что у нее другая версия.
VD>У меня и других все собирается. Если у тебя не собирается, возможно надо запускать сборки из под "Developer Command Prompt for VS 2017" (т.е. C:\VS2017\Common7\Tools\VsDevCmd.bat), так как у тебя могут быть не прописаны пути к мсбилду.
Речь идет о системе, где есть только VS2017 и ничего больше. DevBuildQuick-VS2015.cmd никакой плагин не установит, потому что вызывает Reg-bins-VS2015.cmd, который ищет "%VS140COMNTOOLS%\..IDEVSIXInstaller.exe", а никакого VS140COMNTOOLS на машине нет. Потому я и написал новых батников.

VD>Ты мня можешь пустить через TeamViewer на свою машину? Может в интерактивном режиме будет понятнее, что там у тебя происходит.

Сейчас всё собирается и устанавливается и даже похоже исходная проблема исчезла. Сейчас проверяю.
Отредактировано 02.11.2017 18:29 STDray . Предыдущая версия .
Re[7]: Зависимость от библиотеки Nemerle разрушает интеграци
От: VladD2 Российская Империя www.nemerle.org
Дата: 02.11.17 19:43
Оценка:
Здравствуйте, STDray, Вы писали:

STD>Речь идет о системе, где есть только VS2017 и ничего больше. DevBuildQuick-VS2015.cmd никакой плагин не установит, потому что вызывает Reg-bins-VS2015.cmd, который ищет "%VS140COMNTOOLS%\..IDEVSIXInstaller.exe", а никакого VS140COMNTOOLS на машине нет. Потому я и написал новых батников.


Плагин, потом, можно установить вручную. Просто игнорируешь предупрждение и все. Я только так и делаю, так как мне отладочные символы нужны.

STD>Сейчас всё собирается и устанавливается и даже похоже исходная проблема исчезла. Сейчас проверяю.


А что изменилось то?
http://nemerle.org/Banners/?g=dark
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[8]: Зависимость от библиотеки Nemerle разрушает интеграци
От: STDray http://stdray.livejournal.com
Дата: 02.11.17 23:13
Оценка:
Здравствуйте, VladD2, Вы писали:

VD>А что изменилось то?

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