【六月】发布win版本踩过的坑(最快发布EXE版本方法!)

CCC用来发布win版本的研发应该不多,社区里相关资料也挺少;
我本人项目需要上线steam,也就是需要发布Mac、Windows版本;
Mac我不着急,也没这个条件发布,就说说windows版本用ccc发布的各种坑,希望大佬们、同样需要发布win版本的大佬们,交流、指导!感谢!!!

一、环境;
ccc版本:2.0.1
VC版本:2017(安装ccc的时候勾选了安装vc2017,我发布的时候没升级2019,怕出问题;)
Windows Kits版本:10.1&8;我安装了两个版本,我用8版本的时候不行,后来改成win 10版本,则可以顺利编译成功;具体原因,听群里说,好像是要选择自己电脑对应的系统版本…

如果版本不太对,或者想更改Visual Studio 环境,可以通过 Visual Studio Installer 进行修改;如果找不到 Visual Studio Installer 的位置,可通过搜索,具体参考步骤如下图:

二、准备好项目构建

这里以我的 “wdzj-np-test”举例,我的配置如图,米娜桑根据自己的需要进行选择:

编译后的路径为项目路径"build"文件夹里面,如图:

构建完成后,我点击编译,发现报错了,如图,然后我打开报错日志文件,如图,可以看到提示 140错误;

接下来,找到编译出来的项目sln文件,用VC打开,路径地址在项目文件“build\jsb-link\frameworks\runtime-src\proj.win32”里面,如图

打开后,VC一般会自动检测出该问题,选择好对应的内容后,点确定,如图;

然后在VC里选择编译,我因为已经改过了,所以直接就编译成功了,如图,如果有别的问题,可以看一下“常见问题”,都是我找到并试验过的办法;


由于我没有做屏幕适配,所以打开有黑边; 需要在win下全屏的,可以看“常见问题”;

编译的时候,VC会报一堆警告,我不太懂C++和VC,所以不太清楚怎么回事,怎么解决,不管这些也能正常运行;

编译成功后的文件项目文件“build\jsb-link\frameworks\runtime-src\proj.win32\Debug.win32”里,如图:

不过很诡异,把里面的这些文件弄成压缩包后,上传到 群文件,会被禁止上传,说什么有害文件之类的~

三、常见问题;
问题一: fatal error C1083: 无法打开包括文件: “XXXXX.h”或者 fatal error C1083: 无法打开包括文件 XXX之类的 1083 错误问题;
方法:百度后,发现该问题主要是vc编译器(如果我没理解错)配置文件的路径不对,我通过安装了win 10 SDK,并手动设置路径、重定向项目进行了解决;
https://forum.cocos.com/t/win-fatal-error-c1083/80296 ,这是我的提问链接,然而没有人回,我还是自己找办法解决了;
如图,是我的VC配置,在“项目”菜单下的“属性”里打开:

问题二:无法找到 v140_xp 的问题;
方法:该问题很好解决,用VC编译器打开项目,按照VC的提示进行操作,如果没有提示,请看我找的办法原文链接:
https://blog.csdn.net/chenhao0568/article/details/79886391

问题三:如何全屏窗口化;
方法:主要参考这里: https://blog.csdn.net/wudics/article/details/85346288
找到ccc安装目录下的“cocos\platform\desktop\CCGLView-desktop.cpp”这个文件,打开,原代码

_mainWindow = glfwCreateWindow(screen_width, screen_height, name.c_str(), _monitor, nullptr);
修改为,(如图):
const GLFWvidmode* mode = glfwGetVideoMode(glfwGetPrimaryMonitor());
int screen_width = mode->width;
int screen_height = mode->height;
// _mainWindow = glfwCreateWindow(1920, 1080, name.c_str(), glfwGetPrimaryMonitor(), nullptr);
_mainWindow = glfwCreateWindow(screen_width, screen_height, name.c_str(), glfwGetPrimaryMonitor(), nullptr);
// _mainWindow = glfwCreateWindow(screen_width, screen_height, name.c_str(), _monitor, nullptr);

修改项目文件“build\jsb-link\frameworks\runtime-src\proj.win32”里的main.cpp 文件,如图;

我不是很懂怎么改,比如打包后,出现字体貌似变替换的情况,希望能有大佬大佬解答、交流;

问题四:如何2分钟内发布exe版本,省去以上这么多麻烦步骤;ccc发WIN的坑太大了!!!
办法:该办法是我以前项目需要时大佬找到的办法,我使用后发现有一定局限性,能满足我上steam的需求;

该工具比较小白傻瓜,任何引擎都可以;只是不太方便扩展操作;

25赞

你可以考虑electron+html5的方案,可能包体会多出来60M左右

1赞

Mark,谢谢楼主的分享

虽然我就是用的这种方案。不过,官网文档 https://docs.cocos.com/creator/manual/zh/publish/ ,左侧目录里连“发布windows”这个标题都没有,是不是官方的意思是creator不推荐发布为win平台呢?而“发布原生”这篇文档里 https://docs.cocos.com/creator/manual/zh/publish/publish-native.html 对windows就提了一句话,如果creator里选择了发布win的话,打包出来的到底是什么(我看着像electron ?)?怎么用?

没找到任何说明。就是因为没有说明所以才选择了发布为web-mobile然后用electron打包exe。

1赞

打算开源一个electorn+html5的steam方案,帮助有需要的人
Github地址回头补上

10赞

这个好

看来文档得补一下了

5赞

对,steam !!
哈哈哈,先拜谢!

1赞

这个方法好,发布exe

熬夜做出来了demo

https://github.com/tidys/CocosCreatorForDeskApp

一起学习,一起交流!

11赞

好的,感谢大佬~

make

感谢大佬。

mark

战术马克

mark

大佬大佬,我提交了一个issues打包失败,这种情况应该怎么办呢。

mark

我之前也是用的electron + html5 的方案,看来大家都是差不多的思路嘛。

mark