关于ET5.0 在Unity中RSync同步Win32Exception异常处理

◇◆丶佛笑我妖孽 提交于 2020-02-27 14:01:18

可以参考我之前的文章 Win32Exception解决方法

主要代码是:

ETModel.ProcessHelper类中的

原先:ProcessStartInfo info = new ProcessStartInfo
                {
                    FileName = exe,
                    Arguments = arguments,
                    CreateNoWindow = true,
                    UseShellExecute = useShellExecute,
                    WorkingDirectory = Path.GetFullPath(workingDirectory),
                    RedirectStandardOutput = redirectStandardOutput,
                    RedirectStandardError = redirectStandardError,
                };

修改后:

 ProcessStartInfo info = new ProcessStartInfo
                {
                    FileName = Path.GetFullPath(workingDirectory)+ exe,
                    Arguments = arguments,
                    CreateNoWindow = true,
                    UseShellExecute = useShellExecute,
                    WorkingDirectory = Path.GetFullPath(workingDirectory),
                    RedirectStandardOutput = redirectStandardOutput,
                    RedirectStandardError = redirectStandardError,
                };

但是这个方法不是很完美,下面介绍更保险的方法

同步问题可以运行,但是会发现Web资源服务器和Proto2CS无法运行,又出现这个错误,所以为了修改代码不对其他造成影响。

先将原先的代码全部还原,然后方法改为:

找到 ETEditor.RsyncEditor类    找到最后几行

ProcessHelper.Run( @".\Tools\cwRsync\rsync.exe", arguments, @"..\", waitExit: true);

改为:

ProcessHelper.Run( Path.GetFullPath(@"..\") + @".\Tools\cwRsync\rsync.exe", arguments, @"..\", waitExit: true);

这样既可以实现同步资源,也不会对其他功能造成影响

 

如果出现Unity卡死情况,上面改为ProcessHelper.Run( Path.GetFullPath(@"..\") + @".\Tools\cwRsync\rsync.exe", arguments, @"..\", waitExit: false);

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!