作为使用Wix 3.XX]的服务安装程序的一部分,我们一直在尝试加密连接字符串。在访问了Stackoverflow和其他一些社区的几个选项之后,我们选择了三个部分来做。
.bat
文件,清除了用于加密的可执行文件(基本上不留痕迹)这三个部分都可以很好地配合使用,但是当我尝试使用非提升的权限将加密的可执行文件安装到“ Program Files
调试给了我痕迹,这意味着安装程序未经任何此类程序的授权。
这是执行此操作的代码段:
1. var fileMap = new ExeConfigurationFileMap { ExeConfigFilename = configPath }; 2. var configuration = ConfigurationManager.OpenMappedExeConfiguration(fileMap, ConfigurationUserLevel.None); 3. var section = configuration.GetSection(sectionToEncrypt); 4. section.SectionInformation.ProtectSection("DataProtectionConfigurationProvider"); 5. section.SectionInformation.ForceSave = true; 6. configuration.Save(ConfigurationSaveMode.Modified);
到达第6行时,返回一个错误:
System.Configuration.ConfigurationErrorsException HResult=0x80131902 Inner Exception 1: UnauthorizedAccessException: Access to the path 'C:\Program Files (x86)\<AppDirectory>\5tkbxj1v.tmp' is denied.
对此的任何投入都会很客气。
提前感谢您的帮助!
作为使用Wix 3.XX的服务安装程序的一部分,我们一直在尝试加密连接字符串。在访问了Stackoverflow和其他一些社区的选项之后,我们选择了...
[Program Files文件夹中的文件,不应修改,如果您的配置文件对于所有安装而言都不是静态的,则应将它们放在其他文件夹中,例如AppData
仅InstallExecuteSequence
如果问题实际上是由在非管理模式下运行的小型可执行文件引起的,则可以通过在其应用程序清单(app.manifest)中将requestedExecutionLevel
设置为requireAdministrator
来解决。
有重复其他答案的风险:
为wix试图安装的项目打开项目属性
。>>转到安全