我需要加密应用程序的.config文件中的连接字符串,这些应用程序将在我们的实验室中使用。为此,我按照http://boettr.wordpress.com/2010/05/20/simple-way-to-encrypt-app-config-through-wix-3-5-and-vs2010-using-c-code/
中的说明进行操作只要我不将应用程序安装到Program Files或Program Files(x86)目录,这项工作就很棒。我没有收到任何错误,但.config文件也从未加密。我尝试设置impersonate标志并将其设置为运行延迟但在使用模拟时收到错误它必须在InstallInitialize之后和InstallFinalize之前发生。但是,除非在InstallFinalize之后运行,否则自定义操作将无效。
我的产品代码.wxs
<InstallExecuteSequence>
<Custom Action="LaunchFile" After="InstallFinalize">NOT Installed</Custom>
</InstallExecuteSequence>
<Fragment>
<CustomAction Id="LaunchFile" FileKey="Encryption" ExeCommand="[INSTALLDIR]"/>
我可以在安装后运行encryption.exe并且它可以工作,但我确实在它实际执行之前得到了UAC警告。任何帮助将不胜感激。
答案 0 :(得分:2)
在“InstallFiles”之后执行延期应该可以获得所需的权限并保证文件在那里。
<InstallExecuteSequence>
<Custom Action="LaunchFile" After="InstallFiles" Impersonate="no" Execute="deferred">NOT Installed</Custom>
</InstallExecuteSequence>