Excel DNA - 使用配置转换的最佳方法

问题描述 投票:0回答:1

我有一个项目,我们称它为 "ProjectX",它需要使用Excel DNA。开发是成功的,但是,我无法解决一个问题。该项目在为不同的环境(例如DEV、UAT和PROD)构建时,使用config变换来更新app.config中的值。

问题是这样的。 当我为某一特定环境,比如DEV,构建时 app.config 如期进行转换。然而, ProjectX-AddIn64-packed.xll.config 不转换,这是Excel DNA在XLL中使用的配置。我不知道该怎么做,希望能得到帮助。

限制条件。 我只能部署 一个 文件,XLL。

我已经尝试过的事情研究。

  1. 重命名 app.configProjectX-AddIn64-packed.xll.config
  2. 使用Visual Studio构建事件
  3. 编辑 ExcelDna.Build.props 来尝试覆盖默认的构建包装过程。
c# excel-dna
1个回答
1
投票

截至目前,Excel-DNA中还不支持App.config变换。目前的一个变通方法是将其替换为 .xll.config 的内容的文件。.dll.config 在应用了转换之后,在构建结束时替换文件。

您可以选择许多不同的方式来进行文件替换......。例如,您可以在构建后事件中运行脚本,或者在您的 .csproj 后运行的文件。ExcelDnaBuild 复制文件的任务。

例如

<Target Name="CopyAppConfig" AfterTargets="ExcelDnaBuild">
  <Copy SourceFiles="$(TargetPath).config" DestinationFiles="$(TargetDir)MyAddIn-AddIn.xll.config" />
  <Copy SourceFiles="$(TargetPath).config" DestinationFiles="$(TargetDir)MyAddIn-AddIn-packed.xll.config" />
  <Copy SourceFiles="$(TargetPath).config" DestinationFiles="$(TargetDir)MyAddIn-AddIn64.xll.config" />
  <Copy SourceFiles="$(TargetPath).config" DestinationFiles="$(TargetDir)MyAddIn-AddIn64-packed.xll.config" />
</Target>

你可以在我们的GitHub repo上阅读更多的信息。

© www.soinside.com 2019 - 2024. All rights reserved.