发布过程中的 Autmate Obfuscar
(在 .net 5 中测试)
在您的解决方案/项目根目录中将 Obfuscar Global Tool安装为全局或本地的.Net Tool :
dotnet new tool-manifest
dotnet tool install --local Obfuscar.GlobalTool
放置obfuscar.xml
在您的项目根目录中。然后在项目文件(.csproj)中添加以下内容
<Target Name="Obfuscation" AfterTargets="Build" Condition=" '$(Configuration)' == 'Release'">
<Exec WorkingDirectory="$(TargetDir)" Command="obfuscar.console $(ProjectDir)obfuscar.xml" />
<ItemGroup>
<DistFiles Include="$(OutDir)Obfuscated\**\*.dll; $(OutDir)Obfuscated\**\*.exe" />
<ResolvedFileToPublish Include="@(DistFiles->'%(FullPath)')" Exclude="@(ResolvedFileToPublish)">
<RelativePath>%(DistFiles.RecursiveDir)%(DistFiles.Filename)%(DistFiles.Extension)</RelativePath>
</ResolvedFileToPublish>
</ItemGroup>
</Target>
或使用 ComputeFilesToPublish 目标(未经过良好测试)。
obfuscar.xml
文件:
<?xml version="1.0" encoding="utf-8" ?>
<Obfuscator>
<Var name="InPath" value="." />
<Var name="OutPath" value="$(InPath)\Obfuscated" />
<AssemblySearchPath path="C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App\5.0.5" />
<Module file="$(InPath)\dependencyToObfuscate.dll" />
<Module file="$(InPath)\mylibraryToObfuscate.dll" />
</Obfuscator>
请参阅有关混淆器配置文件 (obfuscar.xml)的更多信息。
注意:此解决方案不适用于 dotnet 5单文件输出 publish。
希望有所帮助。感谢任何更好的解决方案。我在 windows 上的 asp.net core 5 项目中对此进行了测试。