Unoptimized Assembly Detector
NuGet package that detects when assemblies compiled without the -optimized
flag are added to a project and warns you about it.
How does it work?
This project hooks into the build process and detects if any referenced assembly was compiled in Debug mode.
Add to your project:
<ItemGroup>
<PackageReference Include="UnoptimizedAssemblyDetector" Version="0.1.1" PrivateAssets="All" />
</ItemGroup>
Motivation
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.
Acknowledgements
- 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.