簡體   English   中英

如何在.NET Standard 2.0項目上實現Dotfuscator?

[英]How can I implement Dotfuscator on a .NET Standard 2.0 project?

我正在將現有的Xamarin應用程序從PCL升級到.NET Standard 2.0。 我有幾個子項目,如業務,數據,BDO等PCL,我已經能夠使用本教程將它們更新為.NET Standard 2.0。

但是我使用這個Xamarin Blog實現在我的所有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>

有人能幫忙嗎? 謝謝

作為免責聲明,我應該提到我正在回答這篇文章,作為Dotfuscator團隊的開發人員和技術作家的一部分。 我還寫了你鏈接的博客文章 ,所以我很高興你發現它在保護你的Xamarin應用程序方面很有價值。

首先,我應該清理博客文章中的含糊不清。 顯示的Dotfuscator-Xamarin MSBuild集成僅用於集成到特定於平台的Xamarin項目中,這些項目構建為打包格式,如構建APK的Android項目。 不支持直接集成到可移植類庫(PCL)或.NET標准庫等庫項目中。

請注意,將Dotfuscator集成到Xamarin項目中將保護源自解決方案的所有打包程序集,因此您的庫代碼仍將受到保護。 舉例來說,如果你整合到Dotfuscator的MyApp.Android.csproj ,它引用A.csprojB.csprojC.csproj ,Dotfuscator的將保護所有四個項目的組件時,它們被打包成APK。 這種方法可以提供更強大的保護,並且不需要您單獨為每個庫運行Dotfuscator,從而節省了構建和配置時間。

如果您使用的是商業許可的Dotfuscator專業版 ,則版本4.37.0包含一個新的MSBuild集成 新的集成更容易設置,修復一些已知問題,並且將繼續推進將是我們推薦使用Dotfuscator的主要方式,適用於各種項目,而不僅僅是Xamarin。 我建議將Dotfuscator升級到此版本,並從.NET Standard項目中刪除Dotfuscator-Xamarin MSBuild集成。 然后,將新的MSBuild集成添加到特定於平台的Xamarin項目中; 有關詳細信息,請參閱我們的用戶指南的Xamarin入門頁面

如果您使用的是Dotfuscator Community Edition (包含在所有Visual Studio版本中)或較舊的專業版,請繼續使用博客文章中提到的Dotfuscator-Xamarin MSBuild集成 我建議您從.NET標准庫中刪除集成,然后將其添加到引用它們的特定於平台的Xamarin項目中。 請注意,當集成到引用.NET標准庫的Xamarin項目時,存在一個已知問題,即第一個構建將失敗(因為集成不理解.NET Standard使用的最小項目格式); 看到這個答案的解決方法。 后續構建將正常進行而無需解決方法。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM