UE4填坑日记之-生成.sln文件的问题
2016-04-14 11:53
423 查看
此文章来自于【三巫社区微博】
故事大概是这样的。
有一天心血来潮把系统重装了。
然后装开发环境,本来想装VS2015的。结果手贱装成了2013,于是想想,装了就装了吧。接着再把VS2015装上。
然后开心地打开UE4,写了会儿代码。感觉新系统用起来还挺爽。但没过多久就发现了一个问题。就是,我在手动添加一个新类后,右键.uproject文件,"Generate Visual Studio Project File".
图1
结果莫名奇妙出来个 .v12.suo文件,丫的这不是vs2013的东西吗? 按理说,我现在用的UE4是 4.11的版本,不应该出这玩意啊!~
图2
然后,带着忐忑的心情打开.sln,果然。
图3
但这时候其实是可以正常编译的。直到你把项目的 Intermediate目录删掉再重新生成.sln。 这时候就会发现,VS都无法正常编译项目的。感觉已经没救了。
那么问题来了。4.11的版本是要VS2015编译。 但我们又不能生成2015的.sln。 难道是因为我装了2013,系统里有两个版本的VS,导致出现这个问题?感觉好奇怪啊。
算了,再把系统重装一遍(我就是个这么彻底的人)。
这次装系统,把C盘格了,顺便把D盘,E盘.... 都格了,来个干净!
然后,装完VS2015,装完UE4,新建C++项目。 嗯。sln是2015的。看起来没问题。
但,右键Generate Visual Studio文件后。又来了!又成了2013的sln! Fu c k !
妈的,老子电脑里根本就没有VS2013,你丫给我生成个屁的2013 sln! 摔.....
.....
.....
但愤怒是解决不了问题的。于是开始找原因。首先想到的是Version Selector,就是这玩意注册的右键菜单 。于是跟到源码里看。发现它调用了DesktopPlatform模块里的代码。
图4
大概是这样的。
这段代码里有个关键点,就是 Arguments (-projectfiles )之类的。
这一看就是命令行。于是在想,如果要生成 2015的 sln,需要什么样的命令行呢? 在这个函数里打断点试试?
这时候,万能的QQ群闪了。然后看了一下。
图5
Showlog呢,就是这东西。
图6
这里,第一行命令就是生成.sln的命令行。。 于是复制出来。在最后面加一个 -2015. 于是最后命令行是这样的。
"C:/UE4/UnrealEngine-4.11/Engine/Binaries/DotNET/UnrealBuildTool.exe" -projectfiles -project="C:/Users/xtyga/Documents/Unreal Projects/JBoomSky/JBoomSky.uproject" -game -engine -progress -2015
运行一下。正确生成了 VS2015的.sln文件!!!
但是,这样就够了吗?NO,NO,NO...
作为一个有节操的程序员,肯定不会每次都手动敲一遍命令(何况还这么长)。
于是,把这段命令行,写成一个bat,以后每次要生成.sln,双击一下.bat就OK了。
至此,完美解决。 甚至觉得用bat的方式,比右键点击生成更简单更快呢。
但是至今也未找到为什么会生成2013的sln文件的原因。
故事大概是这样的。
有一天心血来潮把系统重装了。
然后装开发环境,本来想装VS2015的。结果手贱装成了2013,于是想想,装了就装了吧。接着再把VS2015装上。
然后开心地打开UE4,写了会儿代码。感觉新系统用起来还挺爽。但没过多久就发现了一个问题。就是,我在手动添加一个新类后,右键.uproject文件,"Generate Visual Studio Project File".
图1
结果莫名奇妙出来个 .v12.suo文件,丫的这不是vs2013的东西吗? 按理说,我现在用的UE4是 4.11的版本,不应该出这玩意啊!~
图2
然后,带着忐忑的心情打开.sln,果然。
图3
但这时候其实是可以正常编译的。直到你把项目的 Intermediate目录删掉再重新生成.sln。 这时候就会发现,VS都无法正常编译项目的。感觉已经没救了。
那么问题来了。4.11的版本是要VS2015编译。 但我们又不能生成2015的.sln。 难道是因为我装了2013,系统里有两个版本的VS,导致出现这个问题?感觉好奇怪啊。
算了,再把系统重装一遍(我就是个这么彻底的人)。
这次装系统,把C盘格了,顺便把D盘,E盘.... 都格了,来个干净!
然后,装完VS2015,装完UE4,新建C++项目。 嗯。sln是2015的。看起来没问题。
但,右键Generate Visual Studio文件后。又来了!又成了2013的sln! Fu c k !
妈的,老子电脑里根本就没有VS2013,你丫给我生成个屁的2013 sln! 摔.....
.....
.....
但愤怒是解决不了问题的。于是开始找原因。首先想到的是Version Selector,就是这玩意注册的右键菜单 。于是跟到源码里看。发现它调用了DesktopPlatform模块里的代码。
图4
大概是这样的。
这段代码里有个关键点,就是 Arguments (-projectfiles )之类的。
这一看就是命令行。于是在想,如果要生成 2015的 sln,需要什么样的命令行呢? 在这个函数里打断点试试?
这时候,万能的QQ群闪了。然后看了一下。
图5
Showlog呢,就是这东西。
图6
这里,第一行命令就是生成.sln的命令行。。 于是复制出来。在最后面加一个 -2015. 于是最后命令行是这样的。
"C:/UE4/UnrealEngine-4.11/Engine/Binaries/DotNET/UnrealBuildTool.exe" -projectfiles -project="C:/Users/xtyga/Documents/Unreal Projects/JBoomSky/JBoomSky.uproject" -game -engine -progress -2015
运行一下。正确生成了 VS2015的.sln文件!!!
但是,这样就够了吗?NO,NO,NO...
作为一个有节操的程序员,肯定不会每次都手动敲一遍命令(何况还这么长)。
于是,把这段命令行,写成一个bat,以后每次要生成.sln,双击一下.bat就OK了。
至此,完美解决。 甚至觉得用bat的方式,比右键点击生成更简单更快呢。
但是至今也未找到为什么会生成2013的sln文件的原因。
相关文章推荐
- iOS-UIImageView点击图片放大,再次点击恢复原始尺寸
- 卡牌游戏(queue的基础应用)
- mui初探笔记02
- UICollectionView 使用
- Error querying database. Cause: java.lang.NumberFormatException: For input string: "否"
- UINavigationBar
- 理解UITabBarController
- Error building Player: CommandInvokationFailure: Unable to convert classes into dex format. See the
- android studio api 23 android 6.0 requires android.permission.READ_CONTACTS or android.permiss
- 使用 Swagger UI 与 Swashbuckle 创建 RESTful Web API 帮助文件
- 使用 Swagger UI 与 Swashbuckle 创建 RESTful Web API 帮助文件
- iOS开发UI篇—iOS开发中三种简单的动画设置
- dexDebug ExecException finished with non-zero exit value 2
- [置顶] IOS 关于取消延迟执行函数的种种。performSelector与cancelPreviousPerformRequestsWithTarget
- ios UIButton属性大全
- UINavigation push 于 present到另一个页面详解
- UITextField及代理方法
- How do you build a database?
- 基于NGUI的循环滑动组件
- JSP&Servlet中request.getParameter() 和request.getAttribute() 区别