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. 二叉搜索树的第K大节点

    题目描述 给定一颗二叉搜索树,请找出其中的第k大的结点. 分析 对二叉搜索树进行逆向中序遍历(先右再左),则遍历序列是降序排序的,因此中序遍历一颗二叉搜索树,可以很容易的得到它的第k大的节点.使用一个 ...

  2. TIMESTAMP类型字段在SQL Server和MySQL中的含义和使用

    公众号上转的满天飞的一篇文章,MySQL优化相关的,无意中瞄到一句“尽量使用TIMESTAMP而非DATETIME”,之前对TIMESTAMP也不太熟悉,很少使用,于是查了一下两者的区别. 其实,不管 ...

  3. linux 之网络命令

    write 给用户发消息,用户必须在线,以ctrl+d保存结束 语法: write 用户 wall发广播信息(write all)  语法:wall 信息 mail 查看发送电子邮件 发送语法 : m ...

  4. C# 异步机制

    Delegate.Invoke Delegate.Invoke is used to execute a delegate on the current thread. A delegate is j ...

  5. Day05 -寻找自己:Ruby的self物件与singleton method

    前情提要:在第四天里,我们用参赛者的例子解说实体方法与类别方法.类别中的实体物件,想要玩弄方法时,可以有三种取用方式:(跟斯斯有三种一样) 该类别所定义的实体方法. 模块中可取得的实体方法.(关于模块 ...

  6. 视频修复工具recover_mp4,视频录制一半掉电,如何查看已保存数据?

    在生产环境中,视频通常是一种重要的文件证据,但是,如果因为各种原因,导致视频在录制到一半过程中失败, 比如:监控到一半,录制设备掉电.虽然,掉电后的视频肯定找不到,但是,有时,长时间工作生产的视频通常 ...

  7. RabbitMQ消费者抛异常日志持续打印的问题

    场景 消费者接受消息,进行一系列处理,但是由于某些原因处理过程中该消费者的抛出了异常,并且不捕获(直接 throws IOException 抛出去): 由于抛出了IOException,那么这条消息 ...

  8. k8s Docker私有仓库认证

    使用过K8s的小伙伴肯定会遇到一个问题,我们在使用自有的Docker仓库的时候都需要先登录用户名和密码,但是如果使用K8S怎么配置密码呢?在secret中有一个类型是docker-registry我们 ...

  9. Django SCRF跨站点请求伪造

    使用Django发POSTt请求的时候经常会遇到Forbidden的错误,然后直接了当的方法就是去setting里面吧csrf中间件注释掉,其实csrf是django给我们提供的防护措施. CSRF就 ...

  10. C#读取OPC server

    1.安装opc server https://blog.csdn.net/yhtppp/article/details/80676118 2.c#读取opc https://github.com/le ...