Мне удалось преобразовать шаблоны T4, как на VS2015, так и на VS2017, пока я не заменил неисправный компьютер и не установил только VS2017 на новое устройство.
Я всегда получаю ошибку:
Код серьезности Описание Состояние подавления строки файла проекта
Ошибка Возникла исключительная ситуация при попытке скомпилировать код преобразования. Было выдано следующее исключение:
System.IO.FileNotFoundException: не удалось найти файл 'C: \ WINDOWS \ system32 \ Microsoft.VisualStudio.Shell'.
Имя файла: «C: \ WINDOWS \ system32 \ Microsoft.VisualStudio.Shell»
в System.IO .__ Error.WinIOError (Int32 errorCode, String MaybeFullPath)
at System.IO.FileStream.Init (Путь к строке, режим FileMode, доступ к FileAccess, права Int32, логическое значение useRights, общий ресурс FileShare, параметры типа3232 bufferSize, параметры FileOptions, SECURITY_ATTRIBUTES secAttrs, строка String msgPath, логическое значение bFromProxy, логическое значение useLongPath, Boolele), Boolele)
в System.IO.FileStream..ctor (путь строки, режим FileMode, доступ к FileAccess, общий доступ к FileShare)
в Roslyn.Utilities.FileUtilities.OpenFileStream (String path)
в Microsoft.CodeAnalysis.MetadataReference.CreateFromFile (путь строки, свойства MetadataReferenceProperties, документация DocumentationProvider)
в Microsoft.VisualStudio.TextTemplating.CompilerBridge. <> c. <. ctor> b__15_0 (строка x)
в System.Linq.Enumerable.WhereSelectListIterator 2.MoveNext()
at System.Linq.Enumerable.<UnionIterator>d__67
1.MoveNext ()
в System.Linq.Enumerable.d__67 1.MoveNext()
at System.Linq.Buffer
1..ctor (источник IEnumerable 1 source)
at System.Linq.Enumerable.ToArray[TSource](IEnumerable
1)
в System.Collections.Immutable.ImmutableArray.CreateRange [T] (IEnumerable 1 items)
at Microsoft.CodeAnalysis.ImmutableArrayExtensions.AsImmutableOrEmpty[T](IEnumerable
1 элементов)
в Microsoft.CodeAnalysis.Compilation.ValidateReferences [T] (IEnumerable 1 references)
at Microsoft.CodeAnalysis.CSharp.CSharpCompilation.WithReferences(IEnumerable
1 ссылок)
в 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, логическая отладка, язык SupportedLanguage, String compilerOptions) 1
У меня включено «Преобразование текстовых шаблонов» в установщике Visual Studio.
Я безуспешно пытался скопировать DLL из C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\Common7\IDE\PublicAssemblies
в system32
.
Я также безуспешно пытался зарегистрировать DLL с gacutil -i
.
Есть идеи?