在构建过程中自动加密App.config文件

Joh*_*hnB 7 .net msbuild windows-installer visual-studio winforms

目前,我的应用程序在第一次启动应用程序时自动加密自己的App.config文件.

我正在使用ConfigurationManager本文中演示的类:

现在我希望在应用程序第一次启动之前已经加密了App.config.

原因是我在我的解决方案中添加了一个安装程序,而且我不希望安装程序丢弃未加密的App.config.我希望这个过程是自动化的.

(到目前为止我唯一提到的是将.exe附加到Post-Build事件中,但是不是更直接的方式吗?)

sll*_*sll 3

第一个选项:使用内置的 MSBuild Exec Task执行自己的实用程序,该程序能够加密配置文件。

第二个选项:自己的 MSBuild 任务

我相信您可以编写一个简单的MSBuild任务,该任务将查找App.Config文件,然后在构建解决方案时对其进行加密。

  1. 创建一个新的 MSBuild 目标,例如EncryptConfig.targets
  2. 更新csproj文件通过 <Import Project="EncryptConfig.targets" />
  3. 在 csproj 中添加DependsOnTargets标准目标:AfterBuild
 <Target Name="AfterBuild" DependsOnTargets="EncryptConfig.targets" />
Run Code Online (Sandbox Code Playgroud)

4)编写自己的任务并执行EncryptConfig.targets

如何编写自己的任务:

  • +1 - 您还可以从 PostBuildEvent 执行您自己的实用程序 .exe (这就是我现在所做的)。示例:`&lt;PostBuildEvent&gt;if $(ConfigurationName) == Release $(TargetDir)\AppConfigEncryptor.exe $(TargetPath)&lt;/PostBuildEvent&gt;` (2认同)