QIQI.EProjectFile 1.9.0

There is a newer version of this package available.
See the version list below for details.
dotnet add package QIQI.EProjectFile --version 1.9.0                
NuGet\Install-Package QIQI.EProjectFile -Version 1.9.0                
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="QIQI.EProjectFile" Version="1.9.0" />                
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add QIQI.EProjectFile --version 1.9.0                
#r "nuget: QIQI.EProjectFile, 1.9.0"                
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
// Install QIQI.EProjectFile as a Cake Addin
#addin nuget:?package=QIQI.EProjectFile&version=1.9.0

// Install QIQI.EProjectFile as a Cake Tool
#tool nuget:?package=QIQI.EProjectFile&version=1.9.0                

Only Chinese document is available.

EProjectFile

Contributor Covenant NuGet
一个用于编辑易语言项目文件的第三方库(C#)
命名空间:QIQI.EProjectFile

安装方式

Package Manager Install-Package QIQI.EProjectFile
.NET CLI dotnet add package QIQI.EProjectFile
使用 VS 的 NuGet 包管理器(GUI)搜索 QIQI.EProjectFile
支持:.NET Core 2.0 或更高(已经不再支持在 XP 环境下运行)

版权相关

  • 本项目是贡献到 公共领域(Public Domain) 的自由、无限制的程序库
  • 在法律许可的范围内,任何人可以出于任何用途(非商业用途或商业用途等)、以任何形式(源代码或编译好的二进制文件等)、任何使用方式(复制、修改、发布、使用、分发、售卖等)使用本项目而不受到限制。作者自愿永久放弃一切(现有的或未来的)由各国版权法与用于版权保护的国际公约提供的权利,将本项目奉献于公共领域,并清楚地认识到这可能会损害作者及其继承者本可获得的利益。但请注意,对于因您的不当使用而可能产生的对其他主体的侵权行为(包括但不限于因使用本项目所依赖的第三方程序库而可能造成的风险、将本项目用于侵害他人合法权益的用途而产生的纠纷等),需由您自行承担相关责任
  • 本项目以原样提供,不作任何形式(明示或暗示)的保证,包括但不限于对适销性、特定用途适用性和非侵权性的保证。在任何情况下,如合同诉讼、侵权诉讼或其他诉讼中,作者或版权持有人均不承担因本项目或本项目的使用、交易或其他行为而产生的、引起的或因其它任何原因与之相关的任何责任(包括但不限于索赔、损害等)。

项目状态

本项目属于实验性项目,所有 API 随时可能发生破坏性的变更(breaking changes)
由于可能存在的程序错误,本项目可能造成被操作文件的数据丢失、损坏,请在进行操作前提前备份。
当前项目的完成度可用于从 *.e 文件中提取出所有代码信息和少量编辑信息,并进行代码编辑,
可用于 文本代码互转、EplDiff、甚至自行实现编译器等场景。

数据段支持情况

段标识 段名称 本项目使用的类名 备注
0x01007319 用户信息段 ProjectConfigSection
0x02007319 系统信息段 ESystemInfoSection
0x03007319 程序段 CodeSection
0x04007319 程序资源段 ResourceSection
0x05007319 可丢失程序段 LosableSection 只支持解析部分数据
0x06007319 <Unknown> Not supported 新版易语言已经不会写出此段
0x07007319 (empty) EndOfFileSection
0x08007319 初始模块段 InitECSection
0x09007319 编辑信息段2 EditorInfoSection
0x0A007319 辅助信息段1 EventIndicesSection
0x0B007319 辅助信息段2 ClassPublicitySection
0x0C007319 易模块记录段 ECDependenciesSection
0x0D007319 易包信息段1 EPackageInfoSection
0x0E007319 编辑过滤器信息段 FolderSection
0x0F007319 易模块记录段2 Not supported 当引用加密模块时,此段用于记忆密码
0x10007319 辅助信息段3 ProjectConfigExSection
0x11007319 编译条件信息段 ConditionalCompilationSection

文件格式支持情况

格式 读取 写出
*.e (未加密) ✔️ ✔️
*.e (加密) ✔️ ✔️
*.ec (未加密) ✔️ ✔️
*.ec (加密) ✔️ ✔️

代码解析与生成

特性名称 完成情况
代码数据中语义部分的解析与生成 ✔️
代码数据中注释部分的解析与生成 ✔️
处理 屏蔽 标志 ✔️
处理 书签 标志
处理 折叠 标志
处理 展开 标志

交流途径

一般的 bug 反馈 与 feature 请求,请用 GitHub 的 Issues 模块反馈
如果您希望对本项目做出贡献,请使用标准 GitHub 工作流:Fork + Pull request
进一步的快速讨论:请加入 QQ 群 605310933 (注意不要在群中反馈 bug,这很可能导致反馈没有被记录。聊天消息较 Issues 模块比较混乱)

编译方式

使用 NuGet 安装缺失包,然后按照一般流程编译即可
注意:必须 VS2017 或更高版本,使用了最新语言特性

使用例程

可以参考 OpenEpl/InjectedEComRepair 项目

特别感谢

本项目的发展得益于开源社区中许多贡献者的支持,这里仅列举部分人员用于表示感谢,请注意该列表并非全部贡献者

用户 成就
东灿 最早开源的项目文件结构分析代码
曙光 最早开源的代码数据解析软件
为你芯冻 e.net(包含一定的项目解析代码)
JimStone(谢栋) 支持库兼容性信息分析 80348c3
@clhhz 发现 MemoryAddress 字段 (#2)
Product Compatible and additional computed target framework versions.
.NET net5.0 was computed.  net5.0-windows was computed.  net6.0 was computed.  net6.0-android was computed.  net6.0-ios was computed.  net6.0-maccatalyst was computed.  net6.0-macos was computed.  net6.0-tvos was computed.  net6.0-windows was computed.  net7.0 was computed.  net7.0-android was computed.  net7.0-ios was computed.  net7.0-maccatalyst was computed.  net7.0-macos was computed.  net7.0-tvos was computed.  net7.0-windows was computed.  net8.0 was computed.  net8.0-android was computed.  net8.0-browser was computed.  net8.0-ios was computed.  net8.0-maccatalyst was computed.  net8.0-macos was computed.  net8.0-tvos was computed.  net8.0-windows was computed. 
.NET Core netcoreapp2.0 was computed.  netcoreapp2.1 was computed.  netcoreapp2.2 was computed.  netcoreapp3.0 was computed.  netcoreapp3.1 was computed. 
.NET Standard netstandard2.0 is compatible.  netstandard2.1 was computed. 
.NET Framework net461 was computed.  net462 was computed.  net463 was computed.  net47 was computed.  net471 was computed.  net472 was computed.  net48 was computed.  net481 was computed. 
MonoAndroid monoandroid was computed. 
MonoMac monomac was computed. 
MonoTouch monotouch was computed. 
Tizen tizen40 was computed.  tizen60 was computed. 
Xamarin.iOS xamarinios was computed. 
Xamarin.Mac xamarinmac was computed. 
Xamarin.TVOS xamarintvos was computed. 
Xamarin.WatchOS xamarinwatchos was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages (1)

Showing the top 1 NuGet packages that depend on QIQI.EProjectFile:

Package Downloads
QIQI.EplOnCpp.Core

EplOnCpp Core

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last updated
1.9.4 135 8/13/2024
1.9.3 268 11/13/2023
1.9.0 449 10/10/2022
1.8.0 431 8/28/2022
1.7.6 387 8/27/2022
1.7.5 383 8/22/2022
1.7.4 403 8/18/2022
1.7.3 366 8/17/2022
1.7.2 404 8/16/2022
1.7.1 394 8/13/2022
1.7.0 418 8/13/2022
1.6.2 392 8/8/2022
1.6.1 400 8/8/2022
1.6.0 419 8/8/2022
1.5.1 456 7/17/2022
1.5.0 472 7/13/2022
1.4.1 723 7/9/2022
1.4.0 407 7/8/2022
1.3.6 1,351 8/13/2019
1.3.5 569 8/11/2019
1.3.4 581 8/10/2019
1.3.3 1,041 7/12/2019
1.3.2 673 7/12/2019
1.3.1 664 6/6/2019
1.3.0 814 4/5/2019
1.2.0 808 9/16/2018
1.1.0 855 8/25/2018
1.0.0 879 7/30/2018
1.0.0-rc 695 7/28/2018
1.0.0-beta 801 6/28/2018