2013-11-14 204 views
0

我剛剛發佈了我的Windows窗體應用程序(通過Build -> Publish Application),我告訴設置將它保存在地圖中。現在的地圖包含這個:應用程序配置窗體窗體應用程序

Application Files(folder) -> sync_1_0_0_4(folder) -> sync.application 
Setup.exe           sync.exe.config.deploy 
sync.application          sync.exe.deploy 
                 sync.exe.manifest 

和一些DLL。現在我想更改應用配置中的密鑰,因此最合理的做法是打開sync.exe.config.deploy。正如我所看到的,我的應用程序配置行完全正常,所以我進行了所需的更改並運行我的應用程序。問題是,在我的應用程序中沒有任何改變。我忘記了什麼嗎?這是我第一次發佈一個C#應用程序。我試過這個答案:C# - app config doesn't change但它沒有奏效。

+1

你重新部署了嗎?在下次部署之前,sync.exe.config.deploy中的更改可能不會生效。 – Tobberoth

+0

每次編譯時,「App.config」文件都會以「YourApplication.exe.config」的形式複製到您的輸出目錄中。如果你想要永久的修改,可以在app.config中修改它 –

+0

@Tobberoth是的。 – Loko

回答

1

ClickOnce發佈會做很多事情。首先,它會進行加密驗證,證明文件沒有改變,所以你不能只編輯這些文件。它還將所有部署文件複製到用戶硬盤驅動器上的某個位置,並且如果該應用程序未重新安裝,並且版本不更改,則不會複製任何內容。第三,如果你的設置是用戶範圍的,他們可能已經被用戶改變了,並且不會從新的應用配置重新讀取。長話短說,如果您必須更改配置,那麼您必須重新部署,並確保您的設置是應用程序作用域,而不是用戶作用域。

+0

Aha然後ClickOnce isn我不需要什麼。謝謝 – Loko

+1

我通常只是將我的應用程序的bin \ debug或bin \ release文件夾複製到某些客戶端,他們不需要花哨的安裝程序,它只是工作。但是,例如,當您必須將您的應用程序提供給來自網站的數百個用戶並確保其自動保持最新時,ClickOnce纔是最佳選擇。 – fejesjoco

+0

有人在聊天中向我解釋說:D現在工作了 – Loko