0

任务部署生成后的App.config通过的ClickOnce

我试图让多个基于配置的(调试和发布)的App.config文件通过ClickOnce的传播到客户端文件。我使用VB.Net和Visual Studio 2008

问题

根据我的当前设置,个人应用程序配置文件(App.debug.config和App.release.config)被复制到bin文件夹在编译期间正确。但是,在发布过程中,生成的App.config文件不会显示在ClickOnce发布目录中。

下面是我正在使用的当前设置的概要。请协助确定最佳解决方案。

步骤

个人配置文件的项目中存在如下:

  • 项目
    • 配置(文件夹)
      • App.debug.config
      • 应用。 release.config

我编辑了.vbproj文件,包括以下内容。这会将配置文件复制并重命名为bin目录。

<Target Name="AfterBuild"> 
    <Delete Files="$(TargetDir)$(TargetFileName).config" /> 
    <Copy SourceFiles="$(ProjectDir)\Configuration\App.$(Configuration).config" DestinationFiles="$(TargetDir)$(TargetFileName).config" /> 
    </Target> 

构建成功,但是当我去发布时,ClickOnce远程目录中不存在App.config文件的实例。我的理解是ClickOnce正在检查内容文件的解决方案文件夹,而不是将它们从bin文件夹中提取出来。

有什么办法可以强制发布操作将文件包含在bin文件夹中,或者使用与发布步骤相同的方式从配置文件夹中进行提取和重命名?

回答

0

刚刚得到它在运气和hackery中风。假设下面的应用程序名称为“Program1”。

编辑我用以下vbproj文件:

<Target Name="AfterBuild"> 
    <Delete Files="$(ProjectDir)$(TargetFileName).config" /> 
    <Delete Files="$(TargetDir)$(TargetFileName).config" /> 
    <Copy SourceFiles="$(ProjectDir)\Configuration\App.$(Configuration).config" DestinationFiles="$(ProjectDir)$(TargetFileName).config" /> 
    <Copy SourceFiles="$(ProjectDir)\Configuration\App.$(Configuration).config" DestinationFiles="$(TargetDir)$(TargetFileName).config" /> 
    </Target> 

然后,我添加了一个名为Program1.exe.config在项目目录中的项目文件。这个文件可以是任何东西,因为上面的脚本将在构建时覆盖它。一旦该文件在项目中,我将构建操作更改为“内容”。这会强制文件作为内容到达发布目录。

不得不回答这个问题。社区。尽快关闭。