VS2017用的比较老的版本,因为当时下载了离线文件,所以可以离线安装,现在看来是没有必要的,占硬盘空间不说,不更新VS IDE,Unity高版本还有问题。

主要问题在于,我之前一直用Unity2017和VS 2017,无问题。

昨天想体验Unity PC环境下的IL2CPP,得知要Unity2018及以上版本才有这个功能,于是装了Unity2018.3.13f1,能成功编辑CS脚本,也能正确生成VS工程,但是IDE中脚本提示许多红线,显示一堆package找不到。

搜索得知需要更新VS IDE,我用的几乎是比较早的VS2017,15.5.X还是多少的,升级到目前最新15.9.11。

但是这又带来了新的问题,脚本打开后,VS工程无法正确加载了,试了一下,就算建立其他工程,比如一般的VS工程,C#工程,C++工程也不行。提示

error  : Invalid static method invocation syntax: "[Microsoft.Build.Utilities.ToolLocationHelper]::GetPathToStandardLibraries($(TargetFrameworkIdentifier)

连创建基本的一般工程都完蛋了,google了一会,有的说要重装VS的,但是有人说没用,根本解决不了问题,最后解决办法要自己手动命令行修复一下才行。

https://developercommunity.visualstudio.com/content/problem/311136/update-to-1580-projects-wont-load.html

在下面10 Best Solution里提到了解决方法,有趣的这是2018年8月份给的解决办法,2019年4月我更新VS IDE还是有这个问题,微软的人果然都是乐于给人喂屎的。

不确定未来这个办法是否还会有效,以及是否会修复,总之目前对我来说可行了。

命令行输入下面的内容

gacutil /u "MSBuild, Version=15.1.0.0"

gacutil /u "Microsoft.Build.Conversion.Core, Version=15.1.0.0"

gacutil /u "Microsoft.Build, Version=15.1.0.0"

gacutil /u "Microsoft.Build.Engine, Version=15.1.0.0"

gacutil /u "Microsoft.Build.Tasks.Core, Version=15.1.0.0"

gacutil /u "Microsoft.Build.Utilities.Core, Version=15.1.0.0"

gacutil /u "Microsoft.Build.Framework, Version=15.1.0.0"

经测试,一般C#,C++工程均又能正确创建并运行了。

Unity2018脚本工程,需要选择Open C# Project,才能正确生成工程。

谢天谢地总算全解决了,2个小时就这么白白浪费在这种毫无意义的Bug上了,微软丢雷老母!!!

最后一个有用的东西是,如何安装一个早期版本的VS2017,没试过,但是姑且先存货以备不时之需。

https://docs.microsoft.com/en-us/visualstudio/productinfo/installing-an-earlier-release-of-vs2017

Unity2018 VS2017打开CS脚本,提示全红及无法加载工程等问题解决的更多相关文章

  1. vs2017 打开cs文件提示无法识别的GUID格式

    总结一句话 no zuo no die. 是我自己在注册表中给vs增加了自动以管理员身份运行,把值给错了,弄成了 ~ RUNASADMIN WIN7RTM, 改成 ~ RUNASADMIN 后OK.还 ...

  2. JS脚本文件的位置对页面加载性能影响以及无阻塞脚本(javascript)模式

    JS的阻塞特性:当<script>出现的时候,页面必须等待脚本文件的加载.解析.执行完毕后才能继续进行页面的渲染.不管脚本文件是以内联形式还是外部引入的形式出现在<script> ...

  3. 180729-Quick-Task 动态脚本支持框架之任务动态加载

    Quick-Task 动态脚本支持框架之任务动态加载 前面几篇博文分别介绍了整个项目的基本架构,使用说明,以及整体框架的设计与实现初稿,接下来则进入更细节的实现篇,将整个工程中核心实现捞出来,从为什么 ...

  4. VS2010创建MVC4项目提示错误: 此模板尝试加载组件程序集 “NuGet.VisualStudio.Interop, Version=1.0.0.0, Culture=neutral,

    在安装VS2010时没有安装MVC4,于是后面自己下载安装了(居然还要安装VS2010 SP1补丁包).装完后新建MVC项目时却提示: 错误: 此模板尝试加载组件程序集 “NuGet.VisualSt ...

  5. [MFC] MFC 打开HTML资源(用ID版,也可加载到自己的web控件上)

    @ ^ @:如果是加载到web控件上,就把注释掉的解除注释(改为web控件点后面的函数),把下一句注释 BOOL Button::LoadFromResource(UINT nRes){//打开网页加 ...

  6. .Net Framework 下运行项目提示.dll类库程序集未能加载

     咨询个问题..项目可以生成成功,运行时总提示未能加载程序集,而且这个程序集就是当前webApi项目的dll,这是怎么回事.. 还一个奇怪的现象,刚开始报缺失xxx.dll, 那个dll是本解决方案里 ...

  7. EasyUI Tabs + Yii2.0实现iframe方式打开页面(解决共用静态文件引入加载的问题)

    在项目实际开发中,有将打开的各个链接页面隔离的需求(防止静态资源起冲突),这个时候常规思路就是使用iframe来实现!但遇到一个比较棘手的问题,当用easyui Tabs打开一个iframe页面时,怎 ...

  8. ESP8266 LUA脚本语言开发: 准备工作-LUA文件加载与变量调用

    前言 这节说一下多个文件调用 多个文件之间变量调用 准备两个文件 init.lua other.lua 开始 模块默认一开始调用的是init.lua 咱让init.lua调用 other.lua 很简 ...

  9. vs2017 vs2019 打开cs文件提示无法识别的GUID格式

    总结一句话 no zuo no die. 是我自己在注册表中给vs增加了自动以管理员身份运行,把值给错了,弄成了 ~ RUNASADMIN WIN7RTM, 改成 ~ RUNASADMIN 后OK.还 ...

随机推荐

  1. MPC学习笔记1:基于状态空间模型的预测控制(2)

    基于估计的无约束预测控制 1.引言 基本上这两个部分都是在线性理论的框架下,利用状态空间法来建模.求解控制律.状态空间模型在理论分析上具有很强的优越性,但实际应用中能直接准确且经济地获取系统状态并不容 ...

  2. 安装SQL server 2008 R2和QL server 2008,与SQL server 2008升级SQL server 2008 R2

    安装SQL server 2008 R2和由SQL server 2008升级SQL server 2008 R2 前提条件: 由SQL server2008 升级SQL server2008 R2 ...

  3. JS中this的四种用法

    1.在一般函数方法中使用 this 指代全局对象 2.作为对象方法调用,this 指代上级对象 3.作为构造函数调用,this 指代new 出的对象 4.apply 调用 ,apply方法作用是改变函 ...

  4. 去除编辑器的HTML标签

    去除HTML携带的标签常用函数 string strip_tags(string str); 编辑器存放内容到数据库时p标签会转换成这种<p></p> 需要使用htmlspec ...

  5. jquery中的 deferred之 then (二)

    例: var def = $.Deferred(); var prs1 = def.then(function (val) { var result = val + "_123" ...

  6. C# ASP.NET Forms身份认证

    原文:https://www.cnblogs.com/kyo-lynn/p/3418577.html 原文:https://www.cnblogs.com/fish-li/archive/2012/0 ...

  7. Game Engine Architecture 6

    [Game Engine Architecture 6] 1.Data-Parallel Computations A GPU is a specialized coprocessor designe ...

  8. C# 自制报表组件 EzReportBuild 2.0

    组件无闪烁.画面流畅,效率一般,支持SQL和ACCESS两种.可以完成报表设计.预览.打印等功能,提供接口函数,可以将设计.预览等嵌入到自定的winform中调用,使用简单.每份报表可设置多页,每页可 ...

  9. fail-fast和fail-safe的区别

    fail-fast(快速失败):多线程情况下,一个线程通过迭代器读取集合中的值时,另一个线程修改了集合,则会抛出ConcurrentModificationException异常: 集合中通过modC ...

  10. Spring BeanDefinitionRegistryPostProcessor BeanPostProcessor作用

    写博客,写博客,把自己知道的小知识点全部记录,