2017-02-14 50 views
2

我最近使用Dotfuscator CE对Visual Studio 2015 Update 3进行了混淆。下面是我使用的Dotfuscator.xml文件。从Settings.settings文件读取混淆后

<?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}\" /> 
    </output> 
</dotfuscator> 

现在问题是,混淆的程序集包含一些存储在Settings.settings中的信息。文件,当我的代码尝试访问设置文件中的数据时,会出现以下异常。

设置属性“ProxyTestURL”未找到

下面是语法阅读设置:

Dim strURI As String = My.Settings.ProxyTestURL 

我知道有一个类似的问题“Dotfuscator的错误:混淆后”但它似乎并不完整或强大,虽然我也在那里发表我的评论,但在这里我期望第二个意见和更强大的解决方案,而不是将我的设置文件文字重命名为混淆名称(如上所述)。

+1

对于任何人看,他提到的另一个问题是在http://stackoverflow.com/questions/17215726/dotfuscator-error-after-obfuscation –

回答

1

您应该从重命名中排除My.Settings。这样做的说明在the docs

+1

请注意,我相信GUI将自动应用此排除;您可能会从GUI开始获得更好的结果,而不是尝试手动编辑配置文件。 –

+0

感谢@Nathan的回复。我已经使用GUI并在排除列表中手动添加了MySettings文件;并解决问题。不过,我仍然在后期编译命令中使用CLI。否则,一旦我的DLL由Visual Studio构建,GUI就会一个接一个地打开所有35个DLL(即使将/ q参数传递给它),并且我必须再次在GUI中按下构建按钮。为了避免这个额外的步骤,我在后期构建事件中使用CLI。 –

+0

是的,这是有道理的 - 抱歉的混乱。一般来说,将GUI视为配置文件生成器并将CLI视为实际混淆器是最简单的。他们每个人都可以做任何一项工作,但以这种方式与他们合作感觉最自然。 –