EVE Online 工业/成本分析工具,当前重构为 WPF 前端 + 本机后端 API + Core/Infrastructure 分层。
- 前端:
EveAnalyzerApp(WPF) - 后端:
src/Eve.Backend(ASP.NET Core Web API,默认http://127.0.0.1:5071) - 契约:
src/EveAnalyzer.Contracts(前后端 DTO) - 前端客户端:
src/EveAnalyzer.Client(Typed HTTP Client) - 基础设施:
src/EveAnalyzer.Infrastructure(SDE/ESI/Auth/存储实现) - 核心:
EveAnalyzerCore(领域与应用接口,已改为类库) - CLI 工具:
tools/EveAnalyzer.Tools
- Windows 10/11
- .NET 9 SDK/Runtime
- EVE SDE JSON 数据目录(包含
_sde.jsonl)
SDE 下载:
https://developers.eveonline.com/static-data
- 先启动后端:
dotnet run --project .\src\Eve.Backend\Eve.Backend.csproj- 再启动 WPF:
dotnet run --project .\EveAnalyzerApp\EveAnalyzerApp\EveAnalyzerApp.csproj- WPF 在市场查询主链路会自动调用后端
bootstrap,默认使用:
DataRoot = data-v2BaseUrl = http://127.0.0.1:5071
GET /api/v1/healthGET /api/v1/versionPOST /api/v1/system/bootstrapGET /api/v1/catalog/market-groupsPOST /api/v1/industry/graph/buildPOST /api/v1/industry/cost/computePOST /api/v1/industry/schedulePOST /api/v1/market/orders/queryPOST /api/v1/market/lowest-sellPOST /api/v1/market/scope/resolvePOST /api/v1/roles/lines/buildPOST /api/v1/auth/accounts/importGET /api/v1/auth/accountsDELETE /api/v1/auth/accounts/{accountId}
开发环境默认启用 Swagger:
http://127.0.0.1:5071/swagger
在后端启动后,可执行以下脚本快速验证 import -> calculate -> export 全链路:
powershell -ExecutionPolicy Bypass -File .\tools\fitting-v1-smoke.ps1 `
-BaseUrl http://127.0.0.1:5071 `
-SdeRoot D:\IT\EVE\EveAnalyzer\res\eve-online-static-data-3183544-jsonl `
-DataRoot data-v2-smoke `
-AutoStartBackend脚本会依次调用:
POST /api/v1/system/bootstrapPOST /api/v1/fitting/importPOST /api/v1/fitting/calculatePOST /api/v1/fitting/export(eft和eveshipfit_url)
样本索引与样本文件:
res/fitting-samples/index.jsonres/fitting-samples/*.eft
生成当前基线(后端需先启动):
powershell -ExecutionPolicy Bypass -File .\tools\fitting-baseline.ps1 `
-BaseUrl http://127.0.0.1:5071 `
-SdeRoot D:\IT\EVE\EveAnalyzer\res\eve-online-static-data-3183544-jsonl `
-DataRoot data-v2-baseline `
-SamplesIndex D:\IT\EVE\EveAnalyzer\res\fitting-samples\index.json `
-SamplesRoot D:\IT\EVE\EveAnalyzer\res\fitting-samples `
-OutFile D:\IT\EVE\EveAnalyzer\res\fitting-samples\baseline.current.json `
-RequestTimeoutSec 180 `
-AutoStartBackend首次确认结果后,可手动将 baseline.current.json 复制为 baseline.expected.json 作为“期望基线”。
比较当前结果与期望基线:
powershell -ExecutionPolicy Bypass -File .\tools\fitting-compare.ps1 `
-BaselineFile D:\IT\EVE\EveAnalyzer\res\fitting-samples\baseline.expected.json `
-CurrentFile D:\IT\EVE\EveAnalyzer\res\fitting-samples\baseline.current.json `
-DpsTolerancePct 5 `
-EhpTolerancePct 5 `
-VelocityTolerancePct 5- 新版本使用
data-v2 - 旧
data目录不自动迁移 - 允许清空并重建缓存/索引
dotnet build .\src\EveAnalyzer.Contracts\EveAnalyzer.Contracts.csproj -m:1
dotnet build .\src\EveAnalyzer.Client\EveAnalyzer.Client.csproj -m:1
dotnet build .\src\EveAnalyzer.Infrastructure\EveAnalyzer.Infrastructure.csproj -m:1
dotnet build .\src\Eve.Backend\Eve.Backend.csproj -m:1
dotnet build .\EveAnalyzerApp\EveAnalyzerApp\EveAnalyzerApp.csproj -m:1
dotnet build .\tools\EveAnalyzer.Tools\EveAnalyzer.Tools.csproj -m:1说明:当前环境存在并行构建/文件权限问题,建议统一使用 -m:1。
EveAnalyzerApp已不再引用EveAnalyzerCore项目。- 工业图构建、成本计算、市场查询、角色线模板生成、调度均可通过后端 API 触发。
- 前端主要通过
EveAnalyzer.Client调用后端,不再直接访问 Core/ESI/本地数据业务实现。