亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何在 .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 關注
  • 213 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號