我已经能够在VS2015和VS2017上转换T4模板,直到我更换故障计算机并在新设备上安装仅 为止。
>我总是会收到错误:
严重性代码描述项目文件行抑制状态 错误尝试编译转换代码时引发了异常。引发了以下异常: System.IO.FileNotFoundException:找不到文件'C:\ WINDOWS \ system32 \ Microsoft.VisualStudio.Shell'。 文件名:“ C:\ WINDOWS \ system32 \ Microsoft.VisualStudio.Shell” 在System.IO .__ Error.WinIOError(Int32 errorCode,可能是StringFullPath) 在System.IO.FileStream.Init(字符串路径,FileMode模式,FileAccess访问,Int32权限,布尔useRights,FileShare共享,Int32 bufferSize,FileOptions选项,SECURITY_ATTRIBUTES secAttrs,字符串msgPath,布尔bFromProxy,布尔useLongPath,布尔checkHost) 在System.IO.FileStream..ctor处(字符串路径,FileMode模式,FileAccess访问,FileShare共享) 在Roslyn.Utilities.FileUtilities.OpenFileStream(字符串路径) 在Microsoft.CodeAnalysis.MetadataReference.CreateFromFile(字符串路径,MetadataReferenceProperties属性,DocumentationProvider文档) 在Microsoft.VisualStudio.TextTemplating.CompilerBridge。<> c。<。ctor> b__15_0(String x) 在System.Linq.Enumerable.WhereSelectListIterator
2.MoveNext() at System.Linq.Enumerable.<UnionIterator>d__67
1.MoveNext() 位于System.Linq.Enumerable.d__671.MoveNext() at System.Linq.Buffer
1..ctor(IEnumerable1 source) at System.Linq.Enumerable.ToArray[TSource](IEnumerable
1源)处 在System.Collections.Immutable.ImmutableArray.CreateRange [T](IEnumerable1 items) at Microsoft.CodeAnalysis.ImmutableArrayExtensions.AsImmutableOrEmpty[T](IEnumerable
1个项目) 在Microsoft.CodeAnalysis.Compilation.ValidateReferences [T](IEnumerable1 references) at Microsoft.CodeAnalysis.CSharp.CSharpCompilation.WithReferences(IEnumerable
1个参考) 在Microsoft.CodeAnalysis.CSharp.CSharpCompilation.CommonWithReferences(IEnumerable1 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语言,字符串编译器选项)1
我已经在Visual Studio安装程序中启用了“文本模板转换”。
我没有运气就试图将DLL从C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\Common7\IDE\PublicAssemblies
复制到system32
。
我也尝试用gacutil -i
注册DLL,但是没有运气。
有什么想法吗?
答案 0 :(得分:2)
原来,我的模板之一是引用Microsoft.VisualStudio.Shell
。
但是VS2017仅随附名为Microsoft.VisualStudio.Shell.15.0
的较新版本。
在.tt中更改引用后,问题消失了。