Skip to content

Latest commit

 

History

History
57 lines (43 loc) · 1.68 KB

File metadata and controls

57 lines (43 loc) · 1.68 KB

AssemblyPatcher Nuget

An MSBuild task that modifies existing assemblies to add InternalsVisibleTo attributes, remove sealed modifiers, add virtual keywords, or change access modifiers to public.

Usage

Add the NuGet package to your project:

<PackageReference Include="AssemblyPatcher">
   <PrivateAssets>all</PrivateAssets>
   <IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageReference>

Add an InternalsVisibleTo attribute to SomeAssembly with OwnAssembly as the assembly name:

<ItemGroup>
   <AddInternalsVisibleTo Include="SomeAssembly" AssemblyName="OwnAssembly" />
</ItemGroup>

Remove sealed modifiers from types in SomeAssembly:

<ItemGroup>
   <RemoveSealedFrom Include="SomeAssembly" />
   <!-- or filtered -->
   <RemoveSealedFrom Include="SomeAssembly" TypeNames="SomeAssembly.TypeA;SomeAssembly.Folder.*" />
</ItemGroup>

Add virtual keywords in SomeAssembly:

<ItemGroup>
   <AddVirtualTo Include="SomeAssembly" />
   <!-- or filtered -->
   <AddVirtualTo Include="SomeAssembly" MemberNames="SomeAssembly.Types::Member*" />
</ItemGroup>

Change access modifiers to public in SomeAssembly:

<ItemGroup>
   <MakePublic Include="SomeAssembly" />
   <!-- or filtered -->
   <MakePublic Include="SomeAssembly" MemberNames="SomeAssembly.Types::Member*" />
   <MakePublic Include="SomeAssembly" TypeNames="SomeAssembly.TypeA" />
</ItemGroup>

License

MIT