dotnet / dotnet/arcade

Introduce service abstractions and dependency injection in SignTool

Open
#16,092 1 comment 0 reactions 0 assignees View on GitHub
Dominant language
C#
Stars
729
Forks
397
Avg merge
3d 15m
Merged PRs (30d)
149

Description

Making the changes in https://github.com/dotnet/arcade/pull/16091 was challenging due to the need to adjust many function headers to pass around specific .NET executable paths and related process logic. Additionally, the SignTool project currently has a lot of repeated functionality, especially around running external processes (e.g., invoking msbuild, pkg, tar), locating executables, and managing their arguments.

**Proposal**
- Refactor the SignTool project to introduce dedicated service abstractions for process execution, pkg, tar, msbuild, and any other external tools.
- Implement these services and register them via Dependency Injection (DI), so dependencies are injected where needed rather than passed through function calls or duplicated logic.
- Consolidate repeated logic (finding executables, running commands, parsing output) into these service classes.

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.