Minecraft(我的世界)中文论坛
标题: KMCCC使用教程(使用量超过360w的C#游戏启动核心|2017年11月15日更新)
作者: gamerteam 时间: 2015-8-24 12:44
标题: KMCCC使用教程(使用量超过360w的C#游戏启动核心|2017年11月15日更新)
KMCCC(Kblack's Minecraft Core Code)是Kblack(@zhouyiran2 )制作的一个C#版的启动核心,拥有以下优点
功能多:包含Json解析(LitJson),Java路径获取,Versions版本获取,文件解压,系统信息获取,以及Libraries文件获取、MojangAPI等。
开源:任何人都可以免费使用,如需修改源码,请务必遵守LGPL协议。
简单:启动只需要几句代码即可。
使用本启动核心的服务器/启动器有:
中国Minecraft口袋妖怪服务器群组(BakaXL)

MC部落(mclansLauncher)

Minecraft星空物语群组服(McxkLauncher)

MCMV3

适用人群:拥有C#一定基础的开发者
Github链接:https://github.com/MineStudio/KMCCC
使用KMCCC的Demo启动器:https://github.com/MineStudio/MCMV3
注意事项
考虑到大部分新手都是使用WinForm开发,本文以WinForm为例,同时我也会标注一些WPF可能不同的代码。
KMCCC需要.net framework 4.0的开发环境,用户也需要安装.net framework 4.0才可以使用
目录
1.启动游戏
2.错误信息的处理
3.游戏信息和Java的获取
4.高级工具的使用(1)
5.高级工具的使用(2)
注:原作者已经放弃本项目,除重大BUG将不会再进行更新,我将继续做KMCCC的更新维护工作。
(PS:吐槽一句,上面的启动器大部分我都参与了开发)
如果你对KMCCC的使用有疑问,欢迎帖子留言,我会尽量帮助你完成属于你的启动器!
KMCCC更新记录:
0.9.5.4:修正了不兼容老版本(例如1.7.2)的Assets读取目录错误问题,修正了1.9.4Forge无法加载Assets的问题,添加了自定义验证服务器设置
0.9.5.6:添加Version_Type设置,默认为KMCCC
0.9.5.7:兼容17w43b版本后修改的JSON格式,KMCCC.Pro增加MojangAPI(目前有销量查询与MojangAPI服务状态查询)
作者: gamerteam 时间: 2015-8-24 13:45
标题: 1.启动游戏和版本获取
本帖最后由 gamerteam 于 2016-3-27 02:42 编辑
使用前的准备:
启动游戏非常简单,只需要一行代码即可。
在这之前,先添加KMCCC.Pro.dll的引用(DLL文件请自行克隆Github的项目,然后编译。注意,编译KMCCC需要你的电脑安装了WindowsSDK。以及再次强调,如果你没有任何C#基础,请放弃本文)

然后打开Program.cs(如果是WPF则是App.xmal.cs)添加KMCCC的引用:
然后在入口处添加以下代码
- public static LauncherCore Core = LauncherCore.Create();
复制代码
如图所示
同时建议添加以下代码,方便KMCCC统计你启动器的使用量和启动情况(KMCCC将会严格保护用户隐私,只反馈启动信息和系统配置信息,你随时可以取消反馈)
- Reporter.SetClientName("启动器名称+版本");
复制代码
然后在主窗口添加一个ComboBox和Button控件,后面会用到。
获取版本列表:
在窗口事件上面(双击标题栏即可),添加以下代码:WinForm后台代码
- var versions = Program.Core.GetVersions().ToArray();
- comboBox1.DataSource = versions;//绑定数据源
- comboBox1.DisplayMember = "Id";//设置comboBox显示的为版本Id
复制代码
WPF xmal代码:
- <ComboBox x:Name="comboBox1" HorizontalAlignment="Left" VerticalAlignment="Top" Width="168" DisplayMemberPath="Id" />
复制代码 DisplayMemberPath="Id" 为关键,等同于上面的comboBox1.DisplayMember = "Id";
启动游戏:
接下来在Button事件上,添加以下代码
- var ver = (KMCCC.Launcher.Version)comboBox1.SelectedItem;
- var result = Program.Core.Launch(new LaunchOptions
- {
- Version = ver, //Ver为Versions里你要启动的版本名字
- MaxMemory = 1024, //最大内存,int类型
- Authenticator = new OfflineAuthenticator("ZhaiSoul"), //离线启动,ZhaiSoul那儿为你要设置的游戏名
- //Authenticator = new YggdrasilLogin("邮箱", "密码", true), // 正版启动,最后一个为是否twitch登录
- Mode = LaunchMode.MCLauncher, //启动模式,这个我会在后面解释有哪几种
- Server = new ServerInfo {Address = "服务器IP地址",Port="服务器端口"}, //设置启动游戏后,自动加入指定IP的服务器,可以不要
- Size = new WindowSize {Height = 768, Width = 1280} //设置窗口大小,可以不要
- });
复制代码
测试前的准备:
然后进入程序编译后的文件夹(默认为bin/debug),复制一个.minecraft进去(只需要包含Libraries和Versions即可)
然后编译并运行,效果如下:

其他信息:
Authenticator为验证模式,有离线启动和正版验证两种,详见上面的代码。
Mode为启动模式,KMCCC拥有三种启动模式,分别为默认、BMCL、MCLauncher模式
默认:设置游戏的默认加载目录为.minecraft(即Mods,resourcepacks等文件将放在.minecraft中)
BMCL模式:复制coremods到Versions/版本 里,参见BMCL的启动模式
MCLauncher模式:Mods和resourcepacks等资源文件均放在Versions/版本 里面,适合有不同游戏版本的客户端
作者: gamerteam 时间: 2015-8-24 14:13
标题: 2.启动错误信息的处理
本帖最后由 gamerteam 于 2015-8-26 01:55 编辑
不是每个用户都会处理错误的,所以这时候我们需要错误信息来提示他们怎么解决。
我们只需在上面的启动代码后面,加上以下代码即可
当然,如果你想出错后弄一个自动修复什么的也是可以的,不过那需要你自己研究了{:10_525:}
- if (!result.Success)
- {
- //MessageBox.Show(result.ErrorMessage, result.ErrorType.ToString());
- switch (result.ErrorType)
- {
- case ErrorType.NoJAVA:
- MessageBox.Show("你系统的Java有异常,可能你非正常途径删除过Java,请尝试重新安装Java\n详细信息:" + result.ErrorMessage,"错误", MessageBoxButtons.OK, MessageBoxIcon.Error);
- break;
- case ErrorType.AuthenticationFailed:
- MessageBox.Show(this, "正版验证失败!请检查你的账号密码", "账号错误\n详细信息:" + result.ErrorMessage,MessageBoxButtons.OK,MessageBoxIcon.Error);
- break;
- case ErrorType.UncompressingFailed:
- MessageBox.Show(this, "可能的多开或文件损坏,请确认文件完整且不要多开\n如果你不是多开游戏的话,请检查libraries文件夹是否完整\n详细信息:" + result.ErrorMessage, "可能的多开或文件损坏",MessageBoxButtons.OK,MessageBoxIcon.Error);
- break;
- default:
- MessageBox.Show(this,
- result.ErrorMessage + "\n" +
- (result.Exception == null ? string.Empty : result.Exception.StackTrace),
- "启动错误,请将此窗口截图向开发者寻求帮助");
- break;
- }
- }
复制代码
这里我们将libraries改名一下,然后再启动游戏,就会出现以下错误:

我这里给一些开发者一些提示,比如上面的,缺少libraries会出现文件解压错误,建议搭配BMCLAPI下载缺失的libraries文件,怎么获取缺少哪些libraries文件,我将会在后面的章节进行说明。
作者: gamerteam 时间: 2015-8-24 19:02
标题: 游戏信息和Java的获取
本帖最后由 gamerteam 于 2015-11-11 13:16 编辑
Libraries丢失的文件列表获取:
我们知道,玩家可能会丢失一些重要的文件,导致MC无法正常开启(Assets丢失后只是无声或者不能中文,所以KMCCC目前还没获取丢失Assets哪些文件的功能),所以我们要知道,玩家到底丢了哪些文件。
首先,创建一个List<T>,例如
- private List<string> lostFlie = new List<string>();
复制代码
然后在我们上面写的启动事件上面,添加以下代码
- lostFlie.Clear();//清空列表,防止重新启动后,列表重复
- var core = LauncherCore.Create();
- var version = Program.Core.GetVersion(comboBox1.Text);//设置读取的版本配置为当前选择的项
- try
- {
- var libs = version.Libraries.Select(lib => core.GetLibPath(lib));
- var natives = version.Natives.Select(native => core.GetNativePath(native));
- foreach (string libflie in libs)
- {
- if (!File.Exists(libflie))
- {
- //MessageBox.Show("当前缺少的Libraries文件有:" + libflie);
- lostFlie.Add(libflie);
- }
- }
- foreach (string libflie in natives)
- {
- if (!File.Exists(libflie))
- {
- //MessageBox.Show("当前缺少的Libraries-natives文件有:" + libflie);
- lostFlie.Add(libflie);
- }
- }
- MessageBox.Show("一共缺少"+lostFlie.Count+"个文件");
- return;//返回一个值,中止继续执行后面的代码
- }
- catch
- {
- MessageBox.Show("版本信息获取失败!请确认已选择正确的核心版本");
- }
复制代码
效果如图:

还记得我们之前改了Libraries文件名字的吧?现在来试试吧!看提示我们缺少哪些文件!

至于怎么配合BMCLAPI下载缺失的文件呢?这个就属于研究项目了,各位自行研究吧,其实很简单的。(提示:去掉Libraries前面的路径名,只保留文件在.minecraft里的路径,例如\libraries\org\lwjgl\lwjgl\lwjgl\2.9.0\lwjgl-2.9.0.jar,然后在修改后的路径名前面加上bmclapi的地址即可)
Java路径的获取
KMCCC自带了Java路径的获取工具,我们可以非常方便的读取玩家电脑里已经安装了哪些Java。
(我们更推崇不提供Java设置功能,让玩家自行安装完整版的Java。)
我们先给我们的窗口,添加一个TextBox(这只是举一个例子)

然后在窗口事件中,添加以下代码
- textBox1.Text = KMCCC.Tools.SystemTools.FindJava().Last();//textbox1显示我们找到的最后一个Java(也是最近安装的一个)
复制代码
效果如下:

注意!如果玩家电脑里没有安装Java,直接这样搜索会导致崩溃!
你需要加一个try来进行修复。
例如
当然,要注意,KMCCC.Tools.SystemTools.FindJava()返回的是一个列表,.First()的意思是显示列表中的第一个。
你也可以再改进一下,让玩家自己选择使用哪个Java,就像下面这样。

很简单,就交给你们自己研究了。总之要用到.ToList()就对了
注意,并不支持绿色版的Java,如果玩家是通过非正常方式卸载的Java(例如直接删除)的话,注册表是会有残留信息的,我们依然会检测到那个并不存在的Java。
(PS:WinForm用得我想死了,还是建议大家试试WPF吧)
作者: gamerteam 时间: 2015-8-24 19:04
本帖最后由 gamerteam 于 2015-11-4 02:39 编辑
相信用的人已经发现,版本选择是不允许string类型的,如果我想默认选择一个版本,或者我知道那个版本名字是多少,该怎么做呢?
这时候就需要用到GetVersion工具了。使用方法如下:
- var core = LauncherCore.Create();
- var Launchversion = core.GetVersion("版本名字");
复制代码
然后在启动版本选择位置,就可以使用Launchversion了
- var result = Program.Core.Launch(new LaunchOptions{
- Version = Launchversion , //Ver为Versions里你要启动的版本名字
- MaxMemory = 1024, //最大内存,int类型
- Authenticator = new OfflineAuthenticator("ZhaiSoul"), //离线启动,ZhaiSoul那儿为你要设置的游戏名
- //Authenticator = new YggdrasilLogin("邮箱", "密码", true), // 正版启动,最后一个为是否twitch登录
- Mode = LaunchMode.MCLauncher, //启动模式,这个我会在后面解释有哪几种
- Server = new ServerInfo {Address = "服务器IP地址"}, //设置启动游戏后,自动加入指定IP的服务器,可以不要
- Size = new WindowSize {Height = 768, Width = 1280} //设置窗口大小,可以不要
- });
复制代码
作者: gamerteam 时间: 2015-8-24 19:05
本帖最后由 gamerteam 于 2015-8-27 11:54 编辑
高级工具的更新将会暂缓,因为确实KMCCC的功能略多,就前面的教程已经足够写一个完整的启动器了。本贴待更新将更新更多实用功能,例如修改游戏标题,系统信息获取等
只接受提问和指导,如需定制启动器,详见我签名
作者: gamerteam 时间: 2015-8-24 19:05
占楼,待更新
作者: 8900581 时间: 2015-8-24 22:22
楼主发本帖后既易语言成为启动器广泛使用的语言后,C#成为了第二大启动器语言
作者: gamerteam 时间: 2015-8-24 23:13
C#做启动器本来就很容易,其实不管什么语言,只要你会了基础,然后随便网上搜一个json解析工具,自己就可以写一个启动器了
作者: 8900581 时间: 2015-8-25 00:23
易语言更容易,XX模块_游戏启动()
手动斜眼
作者: gamerteam 时间: 2015-8-25 10:04
这也是模块,启动游戏和版本选择,就上面的代码已经搞定
作者: tallmoon 时间: 2015-8-25 13:41
支持楼主,表示楼主教程写的很棒
作者: gamerteam 时间: 2015-8-26 01:52
{:10_510:}不给人气就不更,啦啦啦啦啦
作者: tdiant 时间: 2015-8-26 11:37
100个使用C#和BakaXL的理由
作者: MontyKayla 时间: 2015-8-26 17:03
{:10_492:}写得很详细嘛 (听说楼主是个小萝莉,而且只有12岁,然而却被kblack爆过,太残忍了,太变态了
作者: ←_←←_← 时间: 2015-8-26 17:04
看起来不错(可惜我不会C#),据说lz是十二岁的小萝莉,支持十二岁的小萝莉~= =
作者: BlueCraft 时间: 2015-8-26 17:25
提示: 作者被禁止或删除 内容自动屏蔽
作者: tallmoon 时间: 2015-8-27 09:41
出一个 读写配置文件的教程呗
作者: gamerteam 时间: 2015-8-27 10:12
读写配置文件那不属于KMCCC的功能了,但是也很简单,WPF的话建议使用xml,WinForm的话,可以试试WinAPI的ini读取
作者: poi4399 时间: 2015-8-27 10:54
╭(°A°`)╮有点触,望交友。
作者: REN0011 时间: 2015-8-27 12:15
有没有办法支持mac...
作者: T.~以后 时间: 2015-8-27 12:45
不能跨平台是个问题...
作者: gamerteam 时间: 2015-8-27 13:07
跨平台的话,可以mono在Linux上运行,但是不支持WPF也是头疼,WinForm用得要吐了
作者: gamerteam 时间: 2015-8-27 13:07
MAC的话暂时没办法,主要是考虑到国内大部分玩家都是Windows系统的。
作者: T.~以后 时间: 2015-8-27 13:07
那还不如用java写的起动器..
作者: gamerteam 时间: 2015-8-27 13:09
C#自然有他的优势嘛,WPF写出来的程序又漂亮又简单,而且还可以抱微软爸爸的大腿
作者: gamerteam 时间: 2015-8-27 13:10
{:10_527:}我感觉你比我触怎么办
作者: T.~以后 时间: 2015-8-27 13:59
可是我不喜欢微软...windows什么的真的用不习惯
作者: 1343007125 时间: 2015-8-27 16:11
我也是诶,我是Mac
作者: T.~以后 时间: 2015-8-27 17:45
GUN/Linux:ElementaryOS&ArchLinux
作者: gundamMC 时间: 2015-8-27 18:16
本帖最后由 gundamMC 于 2015-8-27 19:53 编辑
膜拜大触QwQ, 交个朋友好不好233 (*/ω\*)
唔。。。试了一下肿么会这样QAQ

那个dll是直接用KMCCCPro编译的。。。_(:зゝ∠)_
作者: breathiness 时间: 2015-8-27 22:27
本帖最后由 breathiness 于 2015-8-27 22:34 编辑
C#啊.....只能路过了......顺,听说作者是个十二岁的小萝莉(流口水)
作者: gamerteam 时间: 2015-8-27 23:20
你添加引用没
而且VS自带提示,你鼠标放在错误的地方,有时候又的问题是可以自动帮你解决的
我在后面窗口的位置那儿没写要加一个KMCCC.Launch的引用,就是因为可以使用VS自动修复这个问题的
作者: Darkyoooooo 时间: 2015-8-27 23:55
欢迎使用Java版KMCCC——JMCCC: https://github.com/Darkyoooooo/JMCCC
作者: 0x3B800001 时间: 2015-8-28 01:08
darkyoooooo快写教程(不然没人会用的= =,等JMCCC的教程已经好长时间了)!!!!!!!!
作者: 王健彬 时间: 2015-8-28 07:10
口袋妖怪的MC服务器在哪下
作者: T.~以后 时间: 2015-8-28 08:27
可是我并不喜欢java...
作者: nikoniko_ni 时间: 2015-8-28 08:46
感谢!帮助很大{:10_492:}
作者: brave_heart 时间: 2015-8-28 11:12
提示: 作者被禁止或删除 内容自动屏蔽
作者: gundamMC 时间: 2015-8-28 18:27
加了引用。。。
作者: gamerteam 时间: 2015-8-28 19:34
本帖最后由 gamerteam 于 2015-8-28 19:43 编辑
窗口部分的代码也需要添加using引用
using KMCCC.Launcher;
作者: gundamMC 时间: 2015-8-28 20:18
对啊,窗口的那个也加了。你看一下那个报错,应该不是引用的问题。。?
作者: gamerteam 时间: 2015-8-28 20:58
你是WinForm还是WPF
然后我后面的
其中有一段是
然后打开Program.cs(如果是WPF则是App.xmal.cs)添加KMCCC的引用:
然后在入口处添加以下代码
- public static LauncherCore Core = LauncherCore.Create();
复制代码
如图所示
然后启动参数再进行Program.Core.Launch的引用,这里的Program.Core就是上面的那个,Program类里引用的LauncherCore
作者: gundamMC 时间: 2015-8-28 21:18
。。。VS2015 _(:зゝ∠)_
后面那段有的。。。

作者: zhouyiran2 时间: 2015-8-29 03:18
请确认核心版本>=0.9.5.2(如果我没记错)
.net >= 4.0
作者: gundamMC 时间: 2015-8-29 08:40
核心是那个KMCCC? 那个直接从github上面下的。。。
.net是 4.5.2
作者: wu123y 时间: 2015-8-29 09:50
呵呵,顶
作者: 九尾· 时间: 2015-8-29 12:34
{:10_492:}这个是什么软件QAQ
作者: gamerteam 时间: 2015-8-29 12:55
并不是什么软件,所以我说本文仅适合拥有一定C#基础的人
作者: 九尾· 时间: 2015-8-29 14:08
那能告诉我WindowsForm在哪里下载或者在哪里么=-=
作者: gamerteam 时间: 2015-8-29 14:55
就目前的情况看,你没有一点编程基础,本教程不太适合,建议你拥有本语言的基础了来,再来研究本文章
作者: 十雨 时间: 2015-8-29 14:57
vs2008里面有
作者: 九尾· 时间: 2015-8-29 14:59
{:10_524:}我连这个软件哪里下载都不知道怎么学QAQ
作者: 九尾· 时间: 2015-8-29 15:01
{:10_495:}好吧我知道了谢谢了
作者: tdiant 时间: 2015-8-29 15:49
同51L,我同样认为你没有一点,一点,任何一点编程基础,学习本教程有些不妥当。
WinForm不是软件,这是常识。WinForm是.NET里的一个。。。部分罢了,后面还有WPF。
就好比你总不能说,语文在哪里下载,数学在哪里下载,英语在哪里下载,对吧,一看就知道你不懂
作者: gamerteam 时间: 2015-8-29 17:53
十雨 发表于 2015-8-29 14:57
vs2008里面有
但是VS2008并没有.net 4
作者: gundamMC 时间: 2015-8-29 18:20
本帖最后由 gundamMC 于 2015-8-29 19:15 编辑
话说导出KMCCC的时候是只导出KMCCC.Pro还是全部一起导出啊。。。导出的时候Basic 和 Pro都没问题,就是那个Shared。。。几乎8000多个报错,那个System.Void未定义或导入。 哦对最开始的时候那个Shared打不开,我改了那个import才打开的
<Import Project="$(MSBuildBinPath)/Microsoft.CSharp.targets" />
就是这个,把原来的那个Csharp.targets换掉了
好吧终于琢磨出来了233 总之谢谢啦QwQ
。。。那个java的会报错。。。
“System.InvalidOperationException”类型的未经处理的异常在 System.Core.dll 中发生
其他信息: 序列不包含任何元素
作者: gamerteam 时间: 2015-8-29 19:15
你电脑没有Java吗?那个地方前面加try{,然后后面加}catch{}
作者: gundamMC 时间: 2015-8-29 19:18
我把那个First换成了SingleOrDefault然后就好了,可是读取不到java啊。。。我电脑上面2个还是3个java应该不会是java的问题吧,都是从官网下的
作者: zhouyiran2 时间: 2015-8-29 19:30
是不是没法打开KMCCC.Shared、、那个项目用了点非正常科技、如果没装WindowsSDK可能打不开
楼主12岁小萝莉逗逼,没有写CI地址,直接去这里下编译完的就行了
https://ci.appveyor.com/project/zhouyiran2/kmccc
作者: zhouyiran2 时间: 2015-8-29 19:32
如果你是64位系统、只装了64位java,请确认编译模式不是x86,应是AnyCPU
如果不是,请在github提交issue,如果有条件的话能把内部catch到的的错误详情贴出好
作者: gamerteam 时间: 2015-8-29 19:32
{:10_527:}欧尼酱别这样嘛
作者: 九尾· 时间: 2015-8-29 21:28
{:10_492:}我就学过一些VB++什么的=-=
作者: gundamMC 时间: 2015-8-29 21:30
我电脑是64,java也是64 编译模式那里是AnyCPU,但是我换成x64 或者把那个 首选32位关掉 软件就打不开了
程序“[8344] Origin.vshost.exe”已退出,返回值为 -1073741819 (0xc0000005) 'Access violation'。
这个前面的都是加载正常,你刚才发的那个已经编译好的我也换了。
作者: zhouyiran2 时间: 2015-8-29 22:43
https://github.com/MineStudio/MCMV3
(这是官方Demo,不会弄git的话就把项目里面KMCCC的子项目删掉改成引用dll)
再出错我也没办法,好好的东西都能炸成这样我也是醉了
作者: gundamMC 时间: 2015-8-29 22:58
本帖最后由 gundamMC 于 2015-8-29 23:23 编辑
报错。。。
Fody: An unhandled exception occurred:
Exception:
Unknown custom metadata item kind: 7
StackTrace:
在 Microsoft.Cci.Pdb.PdbFunction.ReadCustomMetadata(BitAccess bits)
在 Microsoft.Cci.Pdb.PdbFunction..ctor(ManProcSym proc, BitAccess bits)
在 Microsoft.Cci.Pdb.PdbFunction.LoadManagedFunctions(BitAccess bits, UInt32 limit, Boolean readStrings)
在 Microsoft.Cci.Pdb.PdbFile.LoadFuncsFromDbiModule(BitAccess bits, DbiModuleInfo info, IntHashTable names, ArrayList funcList, Boolean readStrings, MsfDirectory dir, Dictionary`2 nameIndex, PdbReader reader)
在 Microsoft.Cci.Pdb.PdbFile.LoadFunctions(Stream read, Dictionary`2& tokenToSourceMapping, String& sourceServerData, Int32& age, Guid& guid)
在 Mono.Cecil.Pdb.PdbReader.PopulateFunctions()
在 Mono.Cecil.Pdb.PdbReader.ProcessDebugHeader(ImageDebugDirectory directory, Byte[] header)
在 Mono.Cecil.ModuleDefinition.ProcessDebugHeader()
在 Mono.Cecil.ModuleDefinition.ReadSymbols(ISymbolReader reader)
在 Mono.Cecil.ModuleReader.ReadSymbols(ModuleDefinition module, ReaderParameters parameters)
在 Mono.Cecil.ModuleReader.CreateModuleFrom(Image image, ReaderParameters parameters)
在 Mono.Cecil.ModuleDefinition.ReadModule(Stream stream, ReaderParameters parameters)
在 Mono.Cecil.ModuleDefinition.ReadModule(String fileName, ReaderParameters parameters)
在 InnerWeaver.ReadModule() 位置 c:\TeamCity\buildAgent\work\7495521761d392b9\FodyIsolated\ModuleReader.cs:行号 14
在 InnerWeaver.Execute() 位置 c:\TeamCity\buildAgent\work\7495521761d392b9\FodyIsolated\InnerWeaver.cs:行号 28
Source:
Mono.Cecil.Pdb
TargetSite:
Void ReadCustomMetadata(Microsoft.Cci.Pdb.BitAccess) MCMV3
我试了原来的手动输入Java,还是会提示版本核心不对,没有java什么的
作者: zhouyiran2 时间: 2015-8-29 23:56
您是盗版(VisualStudio .Net Windows 计算机)的受害者【误】
// 我醉了,你看着办吧,用楼主的那个底子,报错了就百度+百度,我要补作业,没空解决个别问题
作者: gamerteam 时间: 2015-8-30 10:34
gundamMC 发表于 2015-8-29 22:58
报错。。。
我试了原来的手动输入Java,还是会提示版本核心不对,没有java什么的 ...
个人感觉是你的系统原因,别告诉我你用的Ghost版的系统。
个人推荐的开发环境是Win8或以上,安装VS2013或以上版本
VS你可以去“MSDN我告诉你”下载完整的映像
作者: tdiant 时间: 2015-8-30 10:45
有时候.NET的一切东西比如VB.NET、C#、F#什么的都可以看做是一种东西,因为他们都是基于.Net,只不过说话的方式变了。
就比如说,你想表达你今天上午吃了个馒头,你可以说我今天上我吃了个馒头,我还可以说我吃了个馒头在上午,或者上午我吃了个馒头。语法不一样但是意思绝对是一样的,最终的目的是一样的,反正他怎么说,他就是吃了个馒头,上午吃的,就这个意思。
=。= VB++是啥鬼我也不知道,是Visual Basic 6.0或者更老的?VB6的那个开发框架他就是WinForm。然后微软后续搞了个.Net,把VB6这类的老语言移植到上面了,还神奇的发明了C#什么的。WinForm一般C#里用的比较多。WinForm说白了就是VB6里面那个拖控件的开发模式。但是后续微软搞出了WinForm的Plus也就是WPF,WPF首先他还是拖控件,BUT,这些控件的数据能在xmal里更好的去管理,说简单点就是让WinForm里一些神奇的东西变简单了。比如我要是想在程序里加特技加洗发水,让程序DUANG起来,WPF里做比WinForm容易得多。
说了这么多,WinForm就是老式的拖控件就像你说的VB++那样,但是,VB++里没这个名词是因为VB++里只有一种姿势拖控件,.Net里你还可以用更新颖的姿势拖控件,所以给原来的拖控件规则起个名字叫WinForm。
作者: 九尾· 时间: 2015-8-30 12:36
{:10_496:}你是星空物语腐竹?!
作者: zhouyiran2 时间: 2015-8-30 17:09
{:10_503:} 不能把WPF理解为WinForm plus、、、这根本差得多多了、、
作者: tdiant 时间: 2015-8-30 17:25
我说他是WinForm Plus的意思是想让他知道WPF的初衷是从WinForm演变过来的。
=A= 其实两个并不一样。但对于不了解WPF的人来说或者VB6粉来说。。。。。。了解这俩的区别和不了解没啥区别
作者: gundamMC 时间: 2015-8-30 18:38
VS2015, Win10 都是官方下的。。。
作者: gamerteam 时间: 2015-8-30 21:09
我全是MSDN下载的,你出现的这个问题确实就有点奇葩了,很少见。
你MCMV3能否编译?
作者: gundamMC 时间: 2015-8-30 21:24
不行,报错在上面
作者: gamerteam 时间: 2015-8-31 19:47
我个人也是尝试了很多次,没重现这个BUG
你试试使用WPF?
作者: 15253540 时间: 2015-9-1 09:52
看起来不错(可惜我不用C#)
作者: 绿茵大陆 时间: 2015-9-1 20:48
定做启动器、方便加我Q么 985517777
作者: gamerteam 时间: 2015-9-1 22:05
价格较高,请自行考虑
作者: 绿茵大陆 时间: 2015-9-2 14:48
没事的、麻烦您加下吧
作者: sdds15465 时间: 2015-9-2 18:46
一定C#基础.......
我曾经是制作GTA:SA CLEOmods的一个制作人,算有基础吗?(也算是C#语言)
作者: 马上登陆 时间: 2015-9-2 22:47
厉害!新手路过...........
作者: gamerteam 时间: 2015-9-3 00:16
那我就不知道你的了,不过一般没问题,除了对编程一点都不懂的人,一般还是看得懂
作者: brave_heart 时间: 2015-9-3 14:49
提示: 作者被禁止或删除 内容自动屏蔽
作者: Dai_Yu 时间: 2015-9-3 15:22
易语言狗路过。。。{:10_523:}
作者: linzhibin 时间: 2015-9-4 09:44
{:10_492:}对于我这种没有C#基础的人可就悲惨了
作者: hansara 时间: 2015-9-14 17:26
本帖最后由 hansara 于 2015-9-14 21:56 编辑
大大,请问一下,为什么打不开MOD?
作者: gamerteam 时间: 2015-9-14 22:10
打不开mod是什么意思
作者: hansara 时间: 2015-9-15 08:14
打不开MOD客户端
作者: gamerteam 时间: 2015-9-15 18:30
你是指使用本核心?估计缺少lib文件,或者json有问题。
作者: hansara 时间: 2015-9-15 21:39
我试过了,没有缺少,可以打开正常的端,但是打不开MOD端
作者: gamerteam 时间: 2015-9-15 21:55
你确定你的客户端符合标准?请不要使用旋律那个完全不遵循启动标准的启动器
作者: 816830738 时间: 2015-9-15 23:20
能不能把教程写详细点{:10_492:}
作者: gamerteam 时间: 2015-9-16 00:05
哪个地方没写详细
作者: telunsu 时间: 2015-9-17 17:14
很强大{:10_524:}
作者: tallmoon 时间: 2015-9-19 15:08
楼主快一个月了,求更新高级教程
作者: 西行寺占星 时间: 2015-9-23 06:41
遇到了这个错误orz。。。研究了一下是Costura.Fody的锅。。更换新的版本就可以了。。。
作者: DEML_Meng 时间: 2015-9-30 20:20
卤煮真的十二岁?请收下我的膝盖!
作者: 白狼oy 时间: 2015-10-3 19:57
怎么没写了?
作者: xingyu 时间: 2015-11-1 20:08
楼主好,我想请问一下,东西写好了,路径也显示了,点击启动的时候运行了一下就没有了,我的系统是64位的
而且我的代码
- var versions = Core.GetVersions().ToArray();
复制代码
不能加 Program