43 lines
1.3 KiB
Markdown
43 lines
1.3 KiB
Markdown
# .NET 4.0 Amalgamation
|
|
|
|
Legacy .NET 4.0 consumers should use the amalgamated source model.
|
|
|
|
## Files
|
|
|
|
- `AmalgamationTool/DynamORM.Amalgamation.cs`: merged source file.
|
|
- `DynamORM.Net40.csproj`: net40 build project that compiles the amalgamation output.
|
|
|
|
## Regenerate Amalgamation
|
|
|
|
The amalgamation file must be regenerated after library source changes.
|
|
|
|
Current workflow in this repository:
|
|
|
|
1. Build or run `AmalgamationTool` (or use an equivalent merge script).
|
|
2. Merge all files from `DynamORM/` into `AmalgamationTool/DynamORM.Amalgamation.cs`.
|
|
3. Build `DynamORM.Net40.csproj`.
|
|
|
|
## Build in Mono Container
|
|
|
|
```bash
|
|
docker run --rm -v "$PWD":/src -w /src mono:latest \
|
|
bash -lc "msbuild /t:Build /p:Configuration=Release DynamORM.Net40.csproj"
|
|
```
|
|
|
|
Expected output artifact:
|
|
|
|
- `bin/Release/net40/DynamORM.Net40.dll`
|
|
|
|
## Build with .NET SDK Container
|
|
|
|
```bash
|
|
docker run --rm -v "$PWD":/src -w /src mcr.microsoft.com/dotnet/sdk:10.0-preview \
|
|
dotnet build DynamORM.Net40.csproj -c Release
|
|
```
|
|
|
|
## Important Constraint
|
|
|
|
Do not force net40 into the main multi-target `DynamORM/DynamORM.csproj` for modern workflows.
|
|
|
|
Keep net40 compatibility validated through the dedicated amalgamation project so legacy consumers can embed the single-file source without destabilizing primary targets.
|