2013-11-14 166 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