4

安装 Vs 2012 后,我尝试先添加一个实体模型数据库。T4 模板如何无法构建。

当我尝试调试它时,我收到了这些错误。

错误 1 ​​- 加载程序集时出现问题 'C:\Windows\Microsoft.Net\assembly\GAC_32\System.Data\v4.0_4.0.0.0__b77a5c561934e089\System.Data.dll' 引发以下异常:系统。 BadImageFormatException:无法加载文件或程序集 'file:///C:\Windows\Microsoft.Net\assembly\GAC_32\System.Data\v4.0_4.0.0.0__b77a5c561934e089\System.Data.dll' 或其依赖项之一. 试图加载格式不正确的程序。文件名:'file:///C:\Windows\Microsoft.Net\assembly\GAC_32\System.Data\v4.0_4.0.0.0__b77a5c561934e089\System.Data.dll' 在 System.Reflection.RuntimeAssembly._nLoad(AssemblyName fileName, String codeBase, Evidence assemblySecurity, RuntimeAssembly locationHint, StackCrawlMark& stackMark, IntPtr pPrivHostBinder, Boolean throwOnFileNotFound,

=== 预绑定状态信息 === LOG: User = MANNVIT\Ole LOG: Where-ref bind。位置 = C:\Windows\Microsoft.Net\assembly\GAC_32\System.Data\v4.0_4.0.0.0__b77a5c561934e089\System.Data.dll 日志:Appbase = file:///C:/Program Files (x86)/ Microsoft Visual Studio 11.0/Common7/IDE/LOG:初始 PrivatePath = NULL 调用程序集:(未知)。=== LOG:此绑定在 LoadFrom 加载上下文中开始。警告:将不会在 LoadFrom 上下文中探测本机图像。本机映像只会在默认加载上下文中进行探测,例如使用 Assembly.Load()。LOG:未找到应用程序配置文件。LOG:使用主机配置文件:LOG:使用来自 C:\Windows\Microsoft.NET\Framework64\v4.0.30319\config\machine.config 的机器配置文件。日志:正在尝试下载新的 URL 文件:///C:/Windows/Microsoft.Net/assembly/GAC_32/System.Data/v4.0_4.0。0.0__b77a5c561934e089/System.Data.dll。ERR:无法完成程序集的设置(hr = 0x8007000b)。探测终止。

警告2 编译转换:预定义类型'System.Runtime.CompilerServices.ExtensionAttribute'在全局别名的多个程序集中定义;使用来自 'c:\Windows\Microsoft.NET\Framework64\v4.0.30319\mscorlib.dll' C:\Users\Ole\documents\visual studio 11\Projects\Cantina\Cantina\Models\navision.Context.tt 的定义

错误 3 编译转换:命名空间“Microsoft”中不存在类型或命名空间名称“CSharp”(您是否缺少程序集引用?) c:\Users\Ole\AppData\Local\Temp\qiu0vq02.0.cs

错误 4 编译转换:找不到类型或命名空间名称“CSharpCodeProvider”(您是否缺少 using 指令或程序集引用?) c:\Program Files (x86)\Microsoft Visual Studio 11.0\Common7\IDE\Extensions\ Microsoft\Entity Framework Tools\Templates\Includes\EF.Utility.CS.ttinclude 37 22

错误 5 编译转换:命名空间“System.CodeDom.Compiler”中不存在类型或命名空间名称“CompilerErrorCollection”(您是否缺少程序集引用?)c:\Program Files (x86)\Microsoft Visual Studio 11.0\Common7 \IDE\Extensions\Microsoft\Entity Framework Tools\Templates\Includes\EF.Utility.CS.ttinclude

我相信问题在于它尝试使用的 32 位和 64 位 dll 的混合。

加载 64 位 mscorlib.dll 和 32 位 system.data.dll。(但我不确定)

我的构建配置器平台是任何 CPU。

尝试放入<PlatformTarget>x64</PlatformTarget>我的 C# 项目文件,但这没有帮助。

我使用的是 64 位 win 7 电脑。我也安装了vs 2010。

我已经完成了以下操作,安装了 vs 2012 prof。rtm,已卸载 vs 2012 Ultimate rc。

在此之后,我注意到了错误。

然后我尝试卸载所有 .net 框架和 vs 2012 rtm。并再次 installin vs 2012 rtm,但它仍然给我错误。

有人可以请。帮助我解决问题。

4

3 回答 3

0

我错误地将构建配置设置为 x64,并得到了同样的错误。当我把它放到任何 CPU 上时,错误就消失了。当我把它放回 x64 时,它仍然可以构建。所以我不知道为什么,但是更改构建配置并将其改回修复了它!

于 2013-02-14T18:39:36.877 回答
0

确保 T4 文件末尾有换行符。

由于我们的版本控制系统的换行设置发生更改,我最近看到了同样的错误。似乎文本模板末尾缺少换行符会导致编译的模板代码中缺少结束括号 - 这会导致级联编译失败并以该错误结束。

于 2014-11-14T21:42:48.367 回答
0

尝试以管理员身份运行 Visual Studio(上下文菜单中的“以管理员身份运行”)。

于 2015-09-18T10:37:10.473 回答