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在項目目錄中的項目文件。這個文件可以是任何東西,因爲上面的腳本將在構建時覆蓋它。一旦該文件在項目中,我將構建操作更改爲「內容」。這會強制文件作爲內容到達發佈目錄。

不得不回答這個問題。社區。儘快關閉。