参考动态执行T4模板:https://msdn.microsoft.com/zh-cn/library/bb126579.aspx
我项目是.NET Framework 4.5控制台应用程序写的。
执行用例提示报错:Microsoft.CodeAnalysis未引用,如图截图
项目引用的Microsoft.VisualStudio.TextTemplating.14.0 版本是14.3.25407
在Nuget官网上只找到 Microsoft.CodeAnalysis版本为1.3.0-beta1-20160429-01,不知道是不是错误提示要求的Version=1.3.0.0版
Nuget执行:Install-Package Microsoft.CodeAnalysis —Version 1.3.0-beta1-20160429-01
结果还是提示错误:“System.Reflection.Metadata”已拥有为“System.Collections.Immutable”定义的依赖项。
最终降版本解决:
Install-Package System.Collections.Immutable -Version 1.1.37
Install-Package System.Reflection.Metadata -Version 1.0.21
Install-Package Microsoft.CodeAnalysis -Version 1.0.0
Install-Package Microsoft.VisualStudio.TextTemplating.14.0 -Version 14.0.23205
由此可见,在开发过程中使用Nuget导入引用包,默认情况下是导入最新的包,然而,最新的包有可能存在版本兼容的问题,所以开发过程要注意引用包的版本号。