编译转换:类型"Object"在未引用的程序集中定义

qwe*_*oyo 14 c# asp.net asp.net-mvc typescript typelite

我在asp.Net MVC5 webapp中进行了一些更改,其中我使用typelite从C#类创建.ts定义(非常方便).出于某种原因,我在执行T4时遇到了这个错误:

编译转换:类型"Object"在未引用的程序集中定义.您必须添加对程序集'mscorlib,Version = 2.0.5.0,Culture = neutral,PublicKeyToken = 7cec85d7bea7798e,Retargetable = Yes'的引用.

这个警告:

编译转换:假设程序集引用'mscorlib,Version = 1.0.3300.0,Culture = neutral,'EnvDTE'使用的PublicKeyToken = b77a5c561934e089'匹配'mscorlib的标识'mscorlib,Version = 4.0.0.0,Culture = neutral,PublicKeyToken = b77a5c561934e089' ',您可能需要提供运行时策略Mair.Tracking.Web

我想这与TypeLite使用的EnvDTE版本以及对mscorlib EnvDTE使用的引用有关.我应该在web.config中添加bindingRedirect吗?

我正在使用VS2015和Update2 CTP.

Luk*_*brt 10

我可以确认可移植类库与T4模板结合在Visual Studio 2015 Update 2中导致此问题.我无法找到更好的解决方案,然后将TypeLITE重定向到完整的.NET框架.

从版本1.8.0开始,TypeLITE nuget包中包含一个以完整.NET框架为目标的库副本.如果您的项目面向完整的.NET框架,则在安装过程中会选择正确的TypeLITE程序集,并且Visual Studio 2015 Update 2中的一切正常.不幸的是,如果您的项目面向PCL,那么您对Visual Studio 2015 Update 2运气不佳.我是寻找更好的解决方案.

  • 请尝试为VS 2015 Update 2安装KB3151378. (3认同)

Sve*_*man 7

感谢Ian Yates打开Connect项目.

Microsoft于2016年5月4日重新发布了KB3151378.我可以确认此更新解决了T4模板与EDMX文件一起使用时的问题.不幸的是我没有使用TypeLite,所以我无法确认它是否解决了OP的问题,尽管我怀疑它确实如此.

从KB页面:

问题6:

在T4模板,当你引用对一个版本,从桌面(全)框架不同的.NET Framework内置组件发生错误.例如,引用可移植库时会发生错误.