Подтвердить что ты не робот

Обновление Visual Studio 2015 2 разрыва EF обратный код инженер vsix

После установки последнего обновления среды Visual Studio 2015 Update 2, программа восстановления кода обратной связи EF отключается со следующим сообщением об ошибке.

One or more errors occurred while processing template 'Entity.tt'.
error : An exception was thrown while trying to compile the transformation code. The following Exception was thrown:
System.ArgumentException: Empty path name is not legal.
   at System.IO.FileStream.Init(String path, FileMode mode, FileAccess access, Int32 rights, Boolean useRights, FileShare share, Int32 bufferSize, FileOptions options, SECURITY_ATTRIBUTES secAttrs, String msgPath, Boolean bFromProxy, Boolean useLongPath, Boolean checkHost)
   at System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share)
   at System.IO.File.OpenRead(String path)
   at Roslyn.Utilities.FileUtilities.OpenFileStream(String path)
   at Microsoft.CodeAnalysis.MetadataReference.CreateFromFile(String path, MetadataReferenceProperties properties, DocumentationProvider documentation)
   at Microsoft.VisualStudio.TextTemplating.CompilerBridge.<>c.<.ctor>b__15_0(String x)
   at System.Linq.Enumerable.WhereSelectListIterator`2.MoveNext()
   at System.Linq.Enumerable.<UnionIterator>d__66`1.MoveNext()
   at System.Linq.Enumerable.<UnionIterator>d__66`1.MoveNext()
   at System.Linq.Buffer`1..ctor(IEnumerable`1 source)
   at System.Linq.Enumerable.ToArray[TSource](IEnumerable`1 source)
   at System.Collections.Immutable.ImmutableArray.CreateRange[T](IEnumerable`1 items)
   at Microsoft.CodeAnalysis.ImmutableArrayExtensions.AsImmutableOrEmpty[T](IEnumerable`1 items)
   at Microsoft.CodeAnalysis.Compilation.ValidateReferences[T](IEnumerable`1 references)
   at Microsoft.CodeAnalysis.CSharp.CSharpCompilation.WithReferences(IEnumerable`1 references)
   at Microsoft.CodeAnalysis.CSharp.CSharpCompilation.CommonWithReferences(IEnumerable`1 newReferences)
   at Microsoft.VisualStudio.TextTemplating.CompilerBridge.PrepareNewCompilation()
   at Microsoft.VisualStudio.TextTemplating.CompilerBridge.Compile()
   at Microsoft.VisualStudio.TextTemplating.TransformationRunner.Compile(String source, String inputFile, IEnumerable`1 references, Boolean debug, SupportedLanguage language, String compilerOptions)

Я попытался удалить и переустановить инструмент с помощью ссылки Julie Lermans, чтобы получить исправленную версию установщика VS 2015 vsix.

Help!

4b9b3361

Ответ 1

Новый для VS2015: https://onedrive.live.com/?authkey=%21AP6uv8OLvM5qnmU&cid=FFD7F3DFCD5E1160&id=FFD7F3DFCD5E1160%2161967&parId=FFD7F3DFCD5E1160%2161965&action=locate

После обновления 2: Щелкните правой кнопкой мыши проект в обозревателе решений > Свойствa > Целевая структура коммутатора обратно в 4.5.1, а затем перестройте решение. Запустите теперь обратный инженерный инструмент. На моем я работал правильно

Ответ 2

Настройка проекта в качестве проекта запуска помогла мне обойти эту ошибку.

Ответ 3

Я не уверен, что мой случай соответствует 100% твоему, но ошибка такая же и предварительное условие.

Моим первоначальным "грехом" был файл, сконфигурированный для CodeAnalysis, поэтому первый шаг: " Проверить свойства проекта на вкладке" Анализ кода ", если вы используете существующий файл".

Теперь первое Исключение исчезло, но появилось новое, действительно неожиданное OutOfMemoryException!

Принимая процесс devenv.exe под контролем, я заметил, что он начинает быстро потреблять оперативную память (от 250 МБ до 2 ГБ менее чем за 1 сек!), без каких-либо научных причин:-) Я попытался создать новый Empty Ruleset и связав его с проектом, и он невероятно снова начал работать!

Надеюсь, это поможет вам.

Ответ 4

Похоже, что EF6 Power Tools нуждается в любви от кого-то. Хорошо документировано, что нужно изменить zv-пакет .vsix перед его установкой в VS2015.

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

  1. начать новый проект. и установите целевую структуру на 4.5.1
  2. добавить app.config
  3. Сущность установочного пакета -ProjectName MYPROJ
  4. [RIGHT-CLICK] [Entity Framework] [Обратный код инженера сначала (RECF)]
  5. Выберите и соединение, и базу данных. Это работает с повторяемостью без проблем, и выход (RECF) снова и снова на этом этапе снова работает.

  6. [ПРАВИЛЬНО-ЩЕЛЧОК] [Entity Framework] [Настройка шаблонов обратного инженера] и добавление файлов .t. Повторение шага 4 RECF работает многократно.

  7. Теперь измените context.tt очень просто, например, просто добавив комментарий

к началу context.tt заставляет процедуру RECF шага 4 последовательно терпеть неудачу. Перезапуск VS2015 и перезагрузка блока по-прежнему не позволяют шагу 4-RECF снова работать.

Удаление проекта и повторный запуск, кажется, позволяют процессу RECF работать, НО, как только я импортирую tt, а затем внесу изменения в .tt, тогда в выходных данных есть спираль различных проблем...

или

Недостаточно памяти для продолжения выполнения программы #

ИЛИ ЖЕ

Возникла исключительная ситуация при попытке скомпилировать код преобразования.

ИЛИ ЖЕ

При обработке шаблона Entity.tt произошла одна или несколько ошибок. ошибка: возникла исключительная ситуация при попытке скомпилировать код преобразования. Было сгенерировано следующее исключение: System.ArgumentException: пустое имя пути недопустимо.

На этом ресурсе
https://visualstudiogallery.msdn.microsoft.com/72a60b14-1581-4b9b-89f2-846072eff19d, есть люди, комментирующие различные похожие проблемы, но в целом я этот инструмент нестабильный, ненадежный и сложный в использовании в стабильном повторяемом виде.

Ответ 5

Измените ваш .Net Framework на 4.5, для этого щелкните правой кнопкой мыши на Project> Properties> Target Framework. Теперь попробуйте 'Обратный Инженер CodeFirst'.

Ответ 6

Проблема заключается в том, что инструмент автоматически не загружает пакет Entity Framework, который нарушает правила в стандартном наборе правил анализа кода. Поэтому обходной путь сначала - вручную установить пакет Entity Framework, а затем запустить генератор кода обратного инженера.

Ответ 7

Для меня это было так же просто, как очередной перезапуск визуальной студии.

Ответ 8

В моем случае я обновил структуру сущности с 4.5 до 4.6, 4.5.1 не работал. Выполните следующие шаги, чтобы исправить эту проблему.

Щелкните правой кнопкой мыши проект в Обозревателе решений> Свойства> Целевая платформа, переключитесь с 4.5 на 4.6 и перестройте решение.