NuGet package that detects when assemblies compiled without the -optimized
flag are added to a project and warns you about it.
This project hooks into the build process and detects if any referenced assembly was compiled in Debug mode.
<ItemGroup>
<PackageReference Include="UnoptimizedAssemblyDetector" Version="0.1.1" PrivateAssets="All" />
</ItemGroup>
It's surprising to many that dotnet publish
and dotnet pack
compile assemblies in debug mode.
This means that unless you've specified -c release
, you're building .NET assemblies without the -optimize
compiler flag.
With this package, you can get warned if one of your dependencies is being built in Debug
mode and published to nuget.org
.
It can warn any referened assembly, not only added through NuGet.
Now that you know about it, you can communicate to the author of the dependency. Wait until a fix is shipped, you can ignore the warning for said package, roll back to an older version or chose another dependency.
I wrote a blog post that goes into more details on the topic.
- Sentry for the craft release tool used in this project.
- Icon made by Freepik from www.flaticon.com.
- Some of the blog posts that helped:
- Implementing and Debugging Custom MSBuild Tasks by Matthias Koch.
- Shipping a cross-platform MSBuild task in a NuGet package by Nate MacMaster.
- Alexey Golub for the links and rants.