dotnet / dotnet/msbuild

Consider loading task assemblies using Assembly.Load(byte[])

Open
#5,385 4 comments 0 reactions 0 assignees View on GitHub
needs-design triaged
Dominant language
C#
Stars
5.5k
Forks
1.5k
Avg merge
1d 13h
Merged PRs (30d)
133

Description

A common problem is MSBuild node processes locking a task assembly file on disk and lingering, thus preventing the deletion or update of the file.

Consider reading the raw bytes from disk and loading using that, to avoid holding the .dll locked. Need to investigate whether there will be performance or other implications.

https://source.dot.net/#System.Private.CoreLib/Assembly.cs,b2d43e31d338b43c

To me the locked task .dll happens often enough that it would be warranted.

Contributor guide

No contributing guide indexed for this repository

Research direction

Start by tracing where MSBuild loads task assemblies, then compare that behavior with the Assembly.Load(byte[]) example at the linked System.Private.CoreLib Assembly.cs source. Investigate file-locking, performance, and other loading implications; done requires a documented decision supported by relevant tests or measurements.

Written by the indexing model from the issue text.

Assessment

Tech stack
csharp
Domain
build-system
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.