Windows窗体应用类型的差异区别
最近在写小工具的时候,遇到一个坑点,项目的Debug/Release目录下一直有一个文件:项目名.runtimeconfig.json,还无法删除!删除了exe就跑不起来。
我写一个小工具,2M以内,希望双击EXE进行操作就好了。如果还要依赖dll和json,用起来不就很抓狂么,移动exe还得绑定dll和json,这就太麻烦了。
创建项目的时候如果类型选下面的“Windows窗体应用”,默认使用的 .Net Framework是5.0,就会一直生成 “项目名.runtimeconfig.json”文件
建议选上面这个 .NET Framework的模板,默认是4.7.x版本,这样就不会生成那个烦人的json(里面也就是一行关于.net运行环境的版本配置,其它啥都没有)
这二者有什么区别呢,我在使用过程中发现二个问题:
1、Dictionary 类在 5.0 中有 TryAdd方法,而4.7中没有,得改用 ContainsKey 先去检测一下;
2、Application.StartupPath返回的路径(当前 exe 所在的目录),5.0自带文件夹分隔符,而 4.7没有,需要再加上 Path.DirectorySeparatorChar;
目前暂时就发现这二个问题,其它代码 copy 过来能正常跑起来。
需要的插件通过 NeGet进行安装,不过需要注意在安装 Costura.Fody时,版本不要选最新的,选4.x与当前的 .NET Framework版本匹配。
这样在 Debug/Release 下生成的 exe 就能直接导出给其它同事进行使用了,无须其它依赖。