VisualStudiothrows"wrong"compile-timeexception为了在Mono中部署我的项目,我已经将它降级到.Net4.0,因为我已经已经完成了我正在引用的库(CommonUtils)。但是,我仍然遇到以下异常:无法解析主要引用“CommonUtils”,因为它间接依赖于程序集“Newtonsoft.Json,Version=4.5.0.0,Culture=neutral,PublicKeyToken=30ad4fe6b2a6aeed”,即“.5”框架是针对“.NETFramework,Version=v4”构建的。这是比当前目标框架“.NETFramework,Version=v4.0”更高的版本。我试图解决这个问题:这些都没有帮助。这两个两个项目都设置为.Net4.0。通过将已编译的程序集CommonUtils复制到“ExternalLibraries”文件夹中进行引用,因为此DLL也用于其他项目。右键单击Newtonsoft.Json.dll-它与CommonUtils一起移动到bin文件夹-显示在详细信息/文件描述中:Json.NET.NET4.0我很确定我拥有正确的.net4.0和VisualStudio还允许我添加库并通过自动完成支持我,只需编译throws以上警告..作为警告的结果,我突然得到一个异常,即CommonUtils引用的类型都不存在找不到命名空间名称为“CommonUtils”的类型(您是否缺少using指令或程序集引用?)我还能尝试做什么什么?PS:几年前我有一个类似的问题,一个用于编译的旧程序集,并通过从头开始设置windows和visualstudio“解决”了它,但这次我感觉不像做。更新:它可以在另一台计算机上运行:我已经通过USB棒将文件夹结构带到另一台具有相同操作系统(Windows8.1)和相同VisualStudio2013的计算机上——据我所知,两台计算机都应该安装所有更新——它作品。使用成功编译的项目将USB记忆棒带回我的电脑-我仍然遇到同样的错误。(我知道这意味着两台计算机不可能安装相同的所有东西,但我不知道如何找到不同之处,也许有什么暗示这可能是错误的?)更新2:ProcessExplorer没有多大帮助,但是当我用诊断日志编译所有内容时,我想我得到了关键提示:...5>统一的主要参考“Newtonsoft.Json,Version=6.0.0.0,Culture=neutral,PublicKeyToken=30ad4fe6b2a6aeed”。(TaskId:158)5>由于文件“Web.config”中的绑定重定向条目,因此在“C:\packagesWebGrease.1.6.0libWebGrease.dll”中使用此版本而不是原始版本“4.5.0.0”。(TaskId:158)5>由于绑定重定向条目,在“C:ProgramFiles(x86)MicrosoftASP.NETASP.NETMVC4AssembliesSystem.Web.Http.dll”中使用此版本而不是原始版本“4.5.0.0”在文件“Web.config”中。(TaskId:158)5>由于绑定,在“C:ProgramFiles(x86)MicrosoftASP.NETASP.NETMVC4AssembliesSystem.Net.Http.Formatting.dll”中使用此版本而不是原始版本“4.5.0.0”文件“Web.config”中的重定向条目。(TaskId:158)5>解析文件路径为“C:\packagesNewtonsoft.Json.6.0.3libnet40Newtonsoft.Json.dll”。(TaskId:158)5>在搜索路径位置“{HintPathFromItem}”找到参考。(TaskId:158)5>找到相关文件“C:\packagesNewtonsoft.Json.6.0.3libnet40Newtonsoft.Json。xml”。(TaskId:158)5>此引用的ImageRuntimeVersion是“v4.0.30319”。(TaskId:158)...但是,我在构建工作的另一台计算机上得到了完全相同的消息此外,两台计算机都在开头显示此行:SkippingNuGetpackageNewtonsoft.Json6.0.3sinceitisalreadyinstalled。installed在这种情况下是什么意思?是否下载了NuGet?或者它在GAC的某个地方,但我找不到它?(见评论)在编译工作的机器上,我也得到这个输出:1>Dependency"Newtonsoft.Json,Version=4.5.0.0,Culture=neutral,PublicKeyToken=30ad4fe6b2a6aeed"。(TaskId:17)1>已解析的文件路径为“C:ProgramFiles(x86)MicrosoftVisualStudio12.0BlendNewtonsoft.Json.dll”。(TaskId:17)1>在搜索路径位置“{Registry:SoftwareMicrosoft.NETFramework,v4.0,AssemblyFoldersEx}”找到参考。(TaskId:17)1>对于搜索路径“C:ProgramFiles(x86)MicrosoftASP.NETASP.NETMVC4Assemblies”。(TaskId:17)1>考虑过“C:ProgramFiles(x86)MicrosoftASP.NETASP.NETMVC4AssembliesNewtonsoft.Json.winmd”,但它不存在。(TaskId:17)1>考虑过“C:ProgramFiles(x86)MicrosoftASP.NETASP.NETMVC4AssembliesNewtonsoft.Json.dll”,但它不存在。(TaskId:17)1>考虑“C:ProgramFiles(x86)MicrosoftASP.NETASP.NETMVC4AssembliesNewtonsoft.Json.exe”,但它不存在。(TaskId:17)1>对于SearchPath“{TargetFrameworkDirectory}”。(TaskId:17)1>考虑“C:ProgramFiles(x86)ReferenceAssembliesMicrosoftFramework.NETFrameworkv4.0Newtonsoft.Json.winmd”,但它不存在。(TaskId:17)1>考虑过“C:ProgramFiles(x86)ReferenceAssembliesMicrosoftFramework.NETFrameworkv4.0Newtonsoft.Json.dll”,但它不存在。(TaskId:17)1>考虑“C:ProgramFiles(x86)ReferenceAssembliesMicrosoftFramework.NETFrameworkv4.0Newtonsoft.Json.exe”,但它不存在。(TaskId:17)1>对于SearchPath“{Registry:SoftwareMicrosoft.NETFramework,v4.0,AssemblyFoldersEx}”。(TaskId:17)1>考虑AssemblyFoldersEx位置。(TaskId:17)1>“CommonUtils”需要。(TaskId:17)1>此ImageRuntimeVersion参考是“v4.0.30319”。(TaskId:17)但我没有在我的计算机上看到它,编译失败最后更新:我放弃并重新安装了我的整个系统-现在工作正常,但牛顿没有不要答错soft.Json.dll是从哪里来的,为什么在GAC中没有出现,我终于可以重新开始这个项目了,我真的很失望,它不能像在maven中那样简单,你可以删除一个文件夹,以便让Maven重新启动下载所有库。我在VHD上有一个损坏的系统的图像,所以如果其他人提出了一个好的解决方案,我可以在VM中尝试一下。我遇到了同样的问题,解决方案是删除位于c:\ProgramFiles\MicrosoftSDKs\WindowsAzure.NETSDKv2.3ref的Newtonsoft.json.dll这在Connect错误报告中被描述为解决方法。编辑:删除了原始错误报告,可能是新的/相关的/相同的问题:https://connect.microsoft.com/VisualStudio/feedback/details/816985我放弃并重新安装了我的整个系统-它现在工作正常,但它没有'不回答有问题的Newtonsoft.Json.dll是从哪里来的以及为什么它没有出现在GAC中的问题,我终于能够再次从事该项目。VS2013中的Web项目存在一个错误,其中流氓Newtonsoft.Json4.5.0引用留在默认项目模板的.csproj中,需要手动删除。也许是那个问题?我在我的网站上遇到了类似的问题,除了我有一个冲突的版本警告,而且由于我在NuGet添加的同一项目中也有一个更新版本的Newtonsoft.Json引用,我不得不手动卸载该项目并将其删除停止警告出现。以上就是C#学习教程:VisualStudio抛出“错误”编译异常。代表立场,如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处:
