Здравствуйте, VladD2, Вы писали:
VD>Но почти уверен, что дело все же в твоей студии или левых плагинах. Судя по колстэку, вылет при попытке получить доступ к свойствам проекта.
Я тогда сегодня попробую поставить в витуралку винду с другого образа и студию community edition, после чего станет ясно, насколько воспроизводима проблема.
Зависимость от библиотеки Nemerle разрушает интеграцию VS2017
На новую Win10, установил VS2017 и актуальный Nemerle (v1.2.547.0 (2017-09-01)).
Проблема в том, что когда я добавляю зависимость от проекта Nemerle, то крашится интеграция студии.
Вот видео, с минимальным примером воспроизведения проблемы: https://youtu.be/oshKxuDkD_4
У кого-то что-то подобное происходит? И есть ли идеи как фиксить?
Потому что перепаковывать все Nemerle-проекты в кучу транзитивно зависимых библиотек очень не хочется.
Re: Зависимость от библиотеки Nemerle разрушает интеграцию VS2017
Здравствуйте, STDray, Вы писали:
STD>У кого-то что-то подобное происходит? И есть ли идеи как фиксить?
Проделал все вышеперечисленное как на скомпилированном локально Немерле, так и на установленном последним инсталлятором с сайта. Все — ОК.
Запусти экземпляр студии. Воспроизведи действия до того момента когда ты добавляешь ссылку на проект. Далее загрузи еще один экземпляр студии и приатачься им к превой студии (процесс devenv.exe). Зайди в настройки перехвата исключений и установи перехват всех исключений. Переключись в первый экземляр и попытайся добавить ссылку на проект. Если вылетит какое-нибудь исключение, кинь колстэк сюда.
Ну, а чтобы избавиться попробуй немерле переустановит.
Деинсталлируй Немерл (через Settings). Зайти в студию и убедись, что плагина нет. Если есть, снеси явно. Потом попробуй поставить еще рез. Перед этим убедись, что C:\Program Files (x86)\Nemerle\Net-4.0 ничего нет. Если там что-то есть (после деинсталяции) удали этот каталог.
Еще стоит по удалять разные левые расширения. Может это они виноваты.
STD>Потому что перепаковывать все Nemerle-проекты в кучу транзитивно зависимых библиотек очень не хочется.
Это вообще не понял.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[2]: Зависимость от библиотеки Nemerle разрушает интеграцию VS2017
Здравствуйте, 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
Здравствуйте, STDray, Вы писали:
STD>Уже сделал, на всякий случай, перед тем как получить стектрейс еще раз переустановил с очисткой. Пытаюсь собрать BuildInstallerFull-4.cmd, но пока тоже не выходит.
Для локальной сборки надо не этот батник запускать, а DevBuildQuick-VS2015.cmd.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Здравствуйте, VladD2, Вы писали:
STD>>Уже сделал, на всякий случай, перед тем как получить стектрейс еще раз переустановил с очисткой. Пытаюсь собрать BuildInstallerFull-4.cmd, но пока тоже не выходит. VD>Для локальной сборки надо не этот батник запускать, а DevBuildQuick-VS2015.cmd.
Я думал, BuildInstallerFull-4 нужен для сборки инсталятора. И странно, что тот не собирается.
Re[5]: Зависимость от библиотеки Nemerle разрушает интеграци
STD>Я тогда сегодня попробую поставить в витуралку винду с другого образа и студию community edition, после чего станет ясно, насколько воспроизводима проблема.
Установил винду, с образа, который создает майкрософтовская утилита. Установил студию community edition из установщика с сайта. Проблема воспроизводится. С тем лишь исключением, что сначала вылезла более странная ошибка, которая исчезла, после того как я доставил компоненты asp.net.
В остальном все тоже самое.
Re[6]: Зависимость от библиотеки Nemerle разрушает интеграци
Здравствуйте, VladD2, Вы писали:
VD>А зачем тебе инсталлятор? Он от того что на сайте отличаться не будет.
С помощью сборки инсталлятора я хочу удостоверится, что у меня есть все необходимые компоненты и всё отрабатывает корректно. И от того что на сайте мой инсталятор отличается тем, что не собрался, а это странно
Здравствуйте, 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 разрушает интеграци
VD>>Для локальной сборки надо не этот батник запускать, а DevBuildQuick-VS2015.cmd. STD>Я так понимаю, что надо что-то надо создать отдельный батник для студии 2017. Потому что у нее другая версия. STD>Написал по аналогии вот таких батников (коммит), но расширение не ставится
STD>Чет совсем не идут дела.
Здравствуйте, STDray, Вы писали:
STD>Это я про ошибку в сборке инсталятора (фикс), а не про исходную проблему с падением интеграции.
А. На сервере немерл собирается на 7-й винде с фреймворком 4.0. Так что это лучше не трогать, а то сборка может отвалиться. Или надо так править, чтобы и с 4.0 все собиралось.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[5]: Зависимость от библиотеки Nemerle разрушает интеграци
Здравствуйте, STDray, Вы писали:
VD>>Для локальной сборки надо не этот батник запускать, а DevBuildQuick-VS2015.cmd. STD>Я так понимаю, что надо что-то надо создать отдельный батник для студии 2017. Потому что у нее другая версия.
У меня и других все собирается. Если у тебя не собирается, возможно надо запускать сборки из под "Developer Command Prompt for VS 2017" (т.е. C:\VS2017\Common7\Tools\VsDevCmd.bat), так как у тебя могут быть не прописаны пути к мсбилду.
STD>Написал по аналогии вот таких батников (коммит), но расширение не ставится
STD>Чет совсем не идут дела.
Ты мня можешь пустить через TeamViewer на свою машину? Может в интерактивном режиме будет понятнее, что там у тебя происходит.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[6]: Зависимость от библиотеки Nemerle разрушает интеграци
Здравствуйте, 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 на свою машину? Может в интерактивном режиме будет понятнее, что там у тебя происходит.
Сейчас всё собирается и устанавливается и даже похоже исходная проблема исчезла. Сейчас проверяю.
Здравствуйте, STDray, Вы писали:
STD>Речь идет о системе, где есть только VS2017 и ничего больше. DevBuildQuick-VS2015.cmd никакой плагин не установит, потому что вызывает Reg-bins-VS2015.cmd, который ищет "%VS140COMNTOOLS%\..IDEVSIXInstaller.exe", а никакого VS140COMNTOOLS на машине нет. Потому я и написал новых батников.
Плагин, потом, можно установить вручную. Просто игнорируешь предупрждение и все. Я только так и делаю, так как мне отладочные символы нужны.
STD>Сейчас всё собирается и устанавливается и даже похоже исходная проблема исчезла. Сейчас проверяю.
А что изменилось то?
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[8]: Зависимость от библиотеки Nemerle разрушает интеграци
Здравствуйте, VladD2, Вы писали:
STD>>Сейчас всё собирается и устанавливается и даже похоже исходная проблема исчезла. Сейчас проверяю. VD>А что изменилось то?
Странная история.
Если я собираю через свой DevBuildQuick-VS2017.cmd, то установившаяся интеграция работает корректно. Но, когда я собираю инталлер, то проблема возвращается.
Re[9]: Зависимость от библиотеки Nemerle разрушает интеграци
Здравствуйте, STDray, Вы писали:
STD>Здравствуйте, VladD2, Вы писали:
STD>>>Сейчас всё собирается и устанавливается и даже похоже исходная проблема исчезла. Сейчас проверяю. VD>>А что изменилось то?
STD>Странная история. STD>Если я собираю через свой DevBuildQuick-VS2017.cmd, то установившаяся интеграция работает корректно. Но, когда я собираю инталлер, то проблема возвращается.
Если кому интересно. Решил проблем установкой 2015 студии с 3 обновлением, после чего в 17 тоже всё заработало. Странная тема.