Dotfuscator Professional Edition獲取代碼發布和混淆代碼


1 Dotfuscator Professional Edition 4.9 破解版

下載地址:http://www.pc0359.cn/downinfo/39815.html

備份地址:C:\D\99backups\01installSoftware\dotfuscator.rar

2 選擇默認選項安裝Dotfuscator Professional Edition 4.9

這樣命令行的位置才是:C:\Program Files (x86)\PreEmptive Solutions\Dotfuscator Professional Edition 4.9\dotfuscator

3 使用命令行,完成獲取TFS代碼,發布和混淆代碼

 

Test.xml文件內容如下:

<?xml version="1.0" encoding="utf-8" standalone="no"?>
<!DOCTYPE dotfuscator SYSTEM "http://www.preemptive.com/dotfuscator/dtd/dotfuscator_v2.3.dtd">
<dotfuscator version="2.3">
  <!--This is application generated code. Do not edit manually.-->
  <input>
    <loadpaths />
    <asmlist>
      <inputassembly refid="2187036c-9db0-4255-bff9-6503db4e55c9">
        <option>honoroas</option>
        <option>stripoa</option>
        <option>library</option>
        <option>transformxaml</option>
        <file dir="xxx\bin" name="xxx.dll" />
      </inputassembly>
      <inputassembly refid="5de30783-0123-4804-ad0d-f5d3cd5d570f">
        <option>honoroas</option>
        <option>stripoa</option>
        <option>library</option>
        <option>transformxaml</option>
        <file dir="xxx\bin" name="xxx.dll" />
      </inputassembly>
      <inputassembly refid="3c102238-4ba0-4855-84bd-82bc483fa0c9">
        <option>honoroas</option>
        <option>stripoa</option>
        <option>library</option>
        <option>transformxaml</option>
        <file dir="C:\D\xxx\bin" name="xxx.dll" />
      </inputassembly>
    </asmlist>
  </input>
  <output>
    <file dir="${configdir}\Dotfuscated" />
  </output>
  <renaming>
    <option>xmlserialization</option>
    <mapping>
      <mapoutput overwrite="true">
        <file dir="${configdir}\Dotfuscated" name="Map.xml" />
      </mapoutput>
    </mapping>
    <referencerulelist>
      <referencerule rulekey="{6655B10A-FD58-462d-8D4F-5B1316DFF0FF}" />
      <referencerule rulekey="{229FD6F8-5BCC-427b-8F72-A7A413ECDF1A}" />
      <referencerule rulekey="{2B7E7C8C-A39A-4db8-9DFC-6AFD38509061}" />
      <referencerule rulekey="{494EA3BA-B947-44B5-BEE8-A11CC85AAF9B}" />
      <referencerule rulekey="{89769974-93E9-4e71-8D92-BE70E855ACFC}" />
      <referencerule rulekey="{7D9C8B02-2383-420f-8740-A9760394C2C1}" />
    </referencerulelist>
  </renaming>
  <controlflow level="high" />
  <sos mergeruntime="true">
    <option>dontsendtamper</option>
  </sos>
  <smartobfuscation>
    <smartobfuscationreport verbosity="all" overwrite="false" />
  </smartobfuscation>
</dotfuscator>

Test.xml文件可以在dotfuscator的UI中進行操作然后把這個文件保存下來,以后每次都可以用這個文件。

批處理代碼如下:

@echo off
REM 聲明采用UTF-8編碼
chcp 65001

REM 刪除發布文件
del /s /f /q C:\D\98publish\06Dotfucator\01WebApi\Release\*.*

REM 刪除混淆文件
del /s /f /q C:\D\98publish\06Dotfucator\01WebApi\Dotfuscated\*.*

REM 獲取最最新tfs代碼
"C:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\IDE\tf" get C:\D\02tfs_code\01tesla\SourceCode /login:"用戶名","密碼" 

REM 發布WebApi文件
MSBuild C:\D\02tfs_code\xxx\SourceCode\xxx\xxx.csproj /p:Configuration=Release /p:DeployOnBuild=true /p:PublishProfile=C:\D\02tfs_code\xxx\SourceCode\xxx\Properties\PublishProfiles\PublishPub.pubxml /p:VisualStudioVersion=12.0

REM 混淆文件
"C:\Program Files (x86)\PreEmptive Solutions\Dotfuscator Professional Edition 4.9\dotfuscator" /q ".\Test.xml"

pause

其中tfs獲取最新代碼的時候需要用戶名和密碼,PublishPub.pubxml是發布的配置文件。將上面的代碼保存成一個test_dotfuscator.bat。注意文件路徑等需要根據自己的需要進行更改。其中xxx是代指。需要調整為自己項目的路徑或者名稱.

4 遇到過的坑

4.1 只是打開dotfuscator卻不執行

原因是VS2013的dotfuscator是社區版本的,並且沒有命令行的方式。所以運行命令只會打開dotfuscator的用戶界面。

Dotfuscator分為兩個版本:一個是專業版本:dotfuscator professional edition,一個是:Dotfuscator CE社區版本。

VS2013自帶了一個PreEmptive  Dotfuscator and Analytics Community Edition,是一個社區版本的

,並且它只有圖形界面的方式dotfuscator.exe,沒有命令行dotfuscatorCLI.exe的方式。

PreEmptive Dotfuscator and Analytics Community Edition 中的 dotfuscator.exe 是打開GUI的界面,只會打開界面不會執行

PreEmptive  Dotfuscator and Analytics Community Edition 中的 dotfuscatorCLI.exe 是命令行模式。

安裝路徑下的截圖如下。

兩個版本的區別如下:

https://www.preemptive.com/products/dotfuscator/compare-editions

4.2 為了dotfuscatorCLI.exe,重裝VS2013自帶的dotfuscator

VS2013是集成dotfucator的,她沒有更新也不可以下載,卸載我也沒能實現,因為在uninstall里面不知道卸載哪一個?最后直接放棄這種思路。安裝了一個破解版本的dotfuscator.

 

 

4.3編譯報錯找不到Newtonsoft.Json.dll

我以為的原因是,發布之后第三方的dll就不知道從哪里拿?

實際上的原因是,發布之后,所有的dll都在bin目錄下,但是因為同一個dll引用的版本不一樣,而發布的同一個dll名稱只發布一個,所以就造成有的dll可能沒有在發布的bin目錄下找到的原因。

解決方法:

第一種,把所有的相同的dll都使用同一個版本的dll

第二種,使用自定義的dll路徑,如下圖:

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM