2012-04-24 37 views
1

我希望能够在我发布它之前以编程方式将一些信息加载到Properties.Settings.Default中,但它不会持续。我如何克服这一点?如何以编程方式坚持构建?

我(作为测试):

private void button1_Click(object sender, EventArgs e) 
{ 
    Properties.Settings.Default.Setting1 = "abc"; 
    Properties.Settings.Default.Save(); 
} 

private void button2_Click(object sender, EventArgs e) 
{ 
    Text = Properties.Settings.Default.Setting1; 
} 

我点击了按钮1,然后发布(使用ClickOnce),然后运行已发布应用程序并点击按钮2。 Text是空的。

如果不发布应用程序,而只是关闭它并重新打开它并点击button2 - 我得到“abc”。

+0

http://social.msdn.microsoft.com/forums/en-US/csharpgeneral/thread/ddeaca86-a093-4997-82c9-01bc0c630138/ – ctescu 2012-04-24 17:19:56

+0

@ctescu感谢您的想法。但它( - 加入'Properties.Settings.Default.Upgrade();')没有帮助。 – ispiro 2012-04-24 17:25:36

+0

@ctescu正如我所说,这没有帮助。也许是因为这是一个不同的场景。我希望_before_发布中的设置保持不变。实际上,我打算以编程方式加载设置,删除加载它的代码,然后才发布。 (虽然现在,即使没有代码删除它也不起作用。) – ispiro 2012-04-24 17:31:58

回答

0

看来问题在于范围是“用户”。但是,如果范围是“应用程序” - 它不能以编程方式更改。

所以似乎没有办法做到这一点。坚持以编程方式构建,即。

1

出版就不会点击此按钮为您服务。

您需要检测设置未正确初始化(与应用程序设置进行比较),然后自行设置并保存。

空白/不存在/ = somesettingToUpgrade

和一个小程序来查找名称的设置,设置和保存,那么你可以把在按钮单击处理程序,以及说FormLoad。

+0

谢谢。但我不需要发布来点击它。我在发布前点击。设置被保存 - 因为当我关闭程序并再次启动时 - 单击button2会产生“abc”。我添加了'Properties.Settings.Default.Upgrade();'到'button2_Click',但它没有帮助。 – ispiro 2012-04-24 18:01:13

+0

选择项目属性。选择资源选项卡。在下拉列表中选择字符串资源。给它起个名字和价值。它将位于项目的默认名称空间中,在代码中,您可以使用Properties.Resources.ResourceName访问它。 resourceName就是你称之为的任何地方。你可以把文件和图像放在那里,它们都被编译成exe或dll。 – 2012-04-24 22:31:21

+0

谢谢。但我必须以编程方式进行。我无法通过该Visual Studio对话框添加大数组。虽然我可以将它添加为一个文件。但是,如果我能以某种方式通过编程方式添加它,情况会更好。因此,我的问题的标题。 (尽管努力+1。) – ispiro 2012-04-24 22:41:53