2017-02-13 2 views
0

Я запутал. Net DLL, используя DotfuscatorCLI с Visual Studio 2015 Update 3 Команды создания сообщений Post Build. Кажется, он успешно запутался, поскольку после этой команды не появилась ошибка.Ссылка на Obfuscated DLL

Вот команда:

dotfuscatorcli.exe/д /р = Исходный_каталог = "$ (TargetDir) \", SourceFile = $ (TargetFileNa меня) «$ (ProjectDir) Dotfuscator. XML»

а вот Obfuscator.xml

<?xml version="1.0" encoding="utf-8" standalone="no"?> 
<!DOCTYPE dotfuscator SYSTEM "http://www.preemptive.com/dotfuscator/dtd/dotfuscator_v1.1.dtd"> 
<dotfuscator version="1.1"> 
    <propertylist> 
     <property name="SourceDirectory" value="This Path Will Be Replaced By Visual Studio" /> 
     <property name="SourceFile" value="This Filename Will Be Replaced By Visual Studio" /> 
    </propertylist> 
    <trigger> 
     <filelist> 
     <file dir="${SourceDirectory}\" name="${SourceFile}" /> 
     </filelist> 
    </trigger> 
    <output> 
     <file dir="${SourceDirectory}\Dotfuscator\" /> 
    </output> 
</dotfuscator> 

Теперь, когда я ссылаться на эту DLL в другом проекте и попытаться получить доступ его публичных членов; Я больше не могу обращаться к ним. Это как если бы они не были определены/публичными в этой DLL, и они также недоступны в intellisense.

Если я рассматриваю эту DLL в Обозревателе объектов, она показывает классы с некоторыми странными именами, например. h, I, m, n и т. д.

Я пропустил что-то здесь, чтобы использовать эту DLL?

Любой ответ, подсказка или решение будут оценены.

+3

Публичные типы и члены не должны быть запутаны. Обычно обфускатор знает, что ... что вы используете? –

+0

Кроме того, не просто ссылку на другой пост и заставьте нас пойти туда, чтобы понять это. Связывание в порядке, но также укажите основные детали * здесь * в своем теле вопроса. –

+0

Я обновил вопрос и написал команду, которую я использую. Сообщите мне, требуется ли какая-либо другая информация. –

ответ

0

С помощью @Nathan я могу решить проблему, которая у меня была. Вот содержимое обновленного файла Obfuscator.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"> 
     <propertylist> 
      <property name="SourceDirectory" value="This Path Will Be Replaced By Visual Studio" /> 
      <property name="SourceFile" value="This Filename Will Be Replaced By Visual Studio" /> 
     </propertylist> 
     <input> 
     <asmlist> 
      <inputassembly> 
      <option>library</option> 
      <file dir="${SourceDirectory}\" name="${SourceFile}" /> 
      </inputassembly> 
     </asmlist> 
     </input> 
     <output> 
      <file dir="${SourceDirectory}\Dotfuscator\" /> 
     </output> 
    </dotfuscator> 

Я знаю, что если я использую Dotfuscator UI, он автоматически включает режим библиотеки, но я выбираю CLI подход к цели. Я хочу автоматизировать и предоставить общее решение для моих 35 + DLL, на которые ссылаются в одном проекте. Итак, теперь с таким подходом я надеюсь, что это не только автоматизирует мой процесс обфускации, но и ускоряет работу, поскольку это подход командной строки post build. Короче говоря, все, что мне нужно сделать, это нажать кнопку «Построить решение», и это будет сделано.

Надеюсь, это поможет другим. Дайте мне знать в случае какой-либо двусмысленности или проблем, или если у вас есть другие предложения.

0

Похоже, что у вас есть отключенLibrary Mode для этой сборки. Попробуйте повторно включить его, что позволит Dotfuscator автоматически исключить публичные типы и членов из переименования.

+0

Спасибо @Nathan. Я обновил свой вопрос, и там вы можете увидеть XML-файл. Я не отключил какой-либо режим явно. –

+1

@AzazulHaq, проблема в том, что на уровне конфигурационного файла вы должны * включить * режим библиотеки. Если вы используете пользовательский интерфейс для создания файла конфигурации, он по умолчанию включит его.Конфигурационный файл в этом сообщении блога не содержит его, так что это источник путаницы. Если вы хотите увидеть, как включить его, вручную редактируя XML, см. [Соответствующий раздел в руководстве пользователя для Pro] (https://www.preemptive.com/images/stories/Dotfuscator/webframe.html# Library_Mode_By_Assembly.html). –

Смежные вопросы