Excel DNA - 使用配置转换的最佳方式
Excel DNA - Best Way to Use Config Transforms
我有一个项目,我们称之为 'ProjectX',它需要使用 Excel DNA。开发成功,但是无法解决一个问题。该项目在为不同环境(例如 DEV、UAT 和 PROD)构建时使用配置转换来更新 app.config 中的值。
这是问题所在: 当我为特定环境(如 DEV)构建时,app.config
按预期进行转换。但是,ProjectX-AddIn64-packed.xll.config
不会转换,这是 Excel DNA 在 XLL 中使用的配置。我不确定该怎么做,如有任何帮助,我们将不胜感激。
约束:我只能部署一个文件,XLL。
我有的东西Tried/Researched:
- 将
app.config
重命名为 ProjectX-AddIn64-packed.xll.config
- 使用 Visual Studio 构建事件
- 编辑
ExcelDna.Build.props
以尝试覆盖默认 build/packaging 流程
在撰写本文时,App.config 转换目前在 Excel-DNA 中不受支持。目前的一种解决方法是在应用转换后,在构建结束时将 .xll.config
文件替换为 .dll.config
文件的内容。
您可以选择多种不同的方式来执行此文件替换...例如,您可以 运行 post-build 事件中的脚本,或者添加一个新的 MSBuild在复制文件的 ExcelDnaBuild
任务之后 运行s 定位到您的 .csproj
文件。
例如
<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 存储库中阅读更多相关信息:
我有一个项目,我们称之为 'ProjectX',它需要使用 Excel DNA。开发成功,但是无法解决一个问题。该项目在为不同环境(例如 DEV、UAT 和 PROD)构建时使用配置转换来更新 app.config 中的值。
这是问题所在: 当我为特定环境(如 DEV)构建时,app.config
按预期进行转换。但是,ProjectX-AddIn64-packed.xll.config
不会转换,这是 Excel DNA 在 XLL 中使用的配置。我不确定该怎么做,如有任何帮助,我们将不胜感激。
约束:我只能部署一个文件,XLL。
我有的东西Tried/Researched:
- 将
app.config
重命名为ProjectX-AddIn64-packed.xll.config
- 使用 Visual Studio 构建事件
- 编辑
ExcelDna.Build.props
以尝试覆盖默认 build/packaging 流程
App.config 转换目前在 Excel-DNA 中不受支持。目前的一种解决方法是在应用转换后,在构建结束时将 .xll.config
文件替换为 .dll.config
文件的内容。
您可以选择多种不同的方式来执行此文件替换...例如,您可以 运行 post-build 事件中的脚本,或者添加一个新的 MSBuild在复制文件的 ExcelDnaBuild
任务之后 运行s 定位到您的 .csproj
文件。
例如
<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 存储库中阅读更多相关信息: