为了账号安全,请及时绑定邮箱和手机立即绑定

如何在 .NET Standard 2.0 项目上实现 Dotfuscator?

如何在 .NET Standard 2.0 项目上实现 Dotfuscator?

C#
慕田峪7331174 2021-12-05 14:57:59
我正在将现有的 Xamarin 应用程序从 PCL 升级到 .NET Standard 2.0。我有几个子项目,例如业务、数据、BDO 等,它们是 PCL,我已经能够使用本教程将它们更新到 .NET Standard 2.0 。但是,我使用此 Xamarin 博客实现在我所有的 PCL 项目上实现了 Dotufscator ,但它似乎不能作为 .NET Standard 2.0 项目的说明。DLL 未混淆,并且“运行 Dotfuscator”消息未显示在构建输出中。我目前将 Dotufcator 添加到 .NET Standard 2.0 proj 文件的尝试如下:<Project Sdk="Microsoft.NET.Sdk">  <PropertyGroup>    <DotfuscatorXamarinCliPath>C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\Common7\IDE\Extensions\PreEmptiveSolutions\DotfuscatorCE\dotfuscatorCLI.exe</DotfuscatorXamarinCliPath>    <DotfuscatorXamarinConfigFileName>DotfuscatorConfig.xml</DotfuscatorXamarinConfigFileName>    <DotfuscatorXamarinGenerateNewConfigFile>true</DotfuscatorXamarinGenerateNewConfigFile>    <TargetFramework>netstandard2.0</TargetFramework>  </PropertyGroup>  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">    <OutputPath>bin\Debug\</OutputPath>  </PropertyGroup>  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">    <DotfuscatorXamarinEnabled>true</DotfuscatorXamarinEnabled>    <OutputPath>bin\Release\</OutputPath>  </PropertyGroup>  <ItemGroup>    <PackageReference Include="Newtonsoft.Json" Version="10.0.3" />  </ItemGroup>  <ItemGroup>    <None Include="DotfuscatorConfig.xml" />  </ItemGroup>  <Import Project="..\PreEmptive.Dotfuscator.Xamarin.targets" /></Project>有人可以帮忙吗?谢谢
查看完整描述

1 回答

?
胡子哥哥

TA贡献1825条经验 获得超6个赞

作为免责声明,我应该提到我回答这篇文章是我作为 Dotfuscator 团队的开发人员和技术作家工作的一部分。我还写了您链接到的博客文章,因此很高兴您发现它对保护您的 Xamarin 应用程序很有价值。


首先,我应该澄清博客文章中的歧义。此处显示的 Dotfuscator-Xamarin MSBuild 集成仅用于集成到特定于平台的 Xamarin 项目中,这些项目构建为打包格式,例如构建 APK 的 Android 项目。不支持直接集成到可移植类库 (PCL) 或 .NET 标准库等库项目中。


请注意,将 Dotfuscator 集成到 Xamarin 项目中将保护源自您的解决方案的所有打包程序集,因此您的库代码仍将受到保护。例如,如果您将 Dotfuscator 集成到 中MyApp.Android.csproj,其中引用了A.csproj、B.csproj和C.csproj,则 Dotfuscator 将在打包到 APK 时保护所有四个项目的程序集。这种方法可以提供更强大的保护,并且不需要您为每个库单独运行 Dotfuscator,从而节省了构建和配置时间。


如果您使用的是商业许可的Dotfuscator 专业版,则 4.37.0 版包含新的 MSBuild 集成。新的集成更容易设置,修复了一些已知问题,并且将成为我们推荐使用 Dotfuscator 的主要方式,适用于各种项目,而不仅仅是 Xamarin。我建议将 Dotfuscator 升级到此版本,并从 .NET Standard 项目中删除 Dotfuscator-Xamarin MSBuild 集成。然后,将新的 MSBuild 集成添加到特定于平台的 Xamarin 项目;有关详细信息,请参阅我们的用户指南的Xamarin 入门页面。


如果您使用的是Dotfuscator 社区版(包含在所有 Visual Studio 版本中)或较旧的专业版,请继续使用博客文章中提到的 Dotfuscator-Xamarin MSBuild 集成。我建议你从 .NET Standard 库中删除集成,而是将其添加到引用它们的特定于平台的 Xamarin 项目中。请注意,当集成到引用 .NET Standard 库的 Xamarin 项目时,存在一个已知问题,即第一次构建将失败(因为集成不了解 .NET Standard 使用的最小项目格式);请参阅此答案以获取解决方法。后续构建将正常进行,无需解决方法。


查看完整回答
反对 回复 2021-12-05
  • 1 回答
  • 0 关注
  • 167 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信