我有一个项目,我们称它为 "ProjectX",它需要使用Excel DNA。开发是成功的,但是,我无法解决一个问题。该项目在为不同的环境(例如DEV、UAT和PROD)构建时,使用config变换来更新app.config中的值。
问题是这样的。 当我为某一特定环境,比如DEV,构建时 app.config
如期进行转换。然而, ProjectX-AddIn64-packed.xll.config
不转换,这是Excel DNA在XLL中使用的配置。我不知道该怎么做,希望能得到帮助。
限制条件。 我只能部署 一个 文件,XLL。
我已经尝试过的事情研究。
app.config
到 ProjectX-AddIn64-packed.xll.config
ExcelDna.Build.props
来尝试覆盖默认的构建包装过程。截至目前,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上阅读更多的信息。