使用安装项目部署WPF app.config文件

时间:2012-10-15 12:18:46

标签: wpf deployment app-config

这已经困扰了我两天了。我有一个WPF应用程序,它有一个数据库,专注于手写识别。因此,我在app.config文件中有一个连接字符串,以及应用程序启动时的启动参数 - 这是启用版本2运行时,否则手写识别不起作用。调试时一切都很完美...

我使用Visual Studio安装向导创建了一个安装并安装了该应用程序。安装顺利,但现在每次我尝试使用app.config文件时,都会抛出NullReference。

所以我想知道: 我应该将app.config文件设置为资源或嵌入式资源,还是将其保留为内容? 为什么app在调试时会成功读取app.config文件的内容,但是一旦安装它在检索connectionstring属性时会崩溃? 在创建安装时,是否有一些我应该执行的设置,以便app.config文件可以在代码中使用? (因为app.config文件是程序文件目录)。

所以现在,如果我对连接字符串进行硬编码(在变量中)一切正常,但手写识别不起作用,因为似乎没有使用app.config文件。

我有点紧迫,所以任何帮助都会深深感激。

PS:只是为了它,这是app.config文件的内容

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <startup useLegacyV2RuntimeActivationPolicy="true">
    <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/>
  </startup>
  <appSettings>
  </appSettings>
  <connectionStrings>
    <add name ="conString" connectionString="server=ServerName;database=dbname;Integrated Security='true'"/>
  </connectionStrings>
</configuration>

1 个答案:

答案 0 :(得分:1)

app.config文件是从settings自动生成的(在Visual Studio的Properties / Settings.settings下)。如果此连接字符串在设置中,您将能够通过以下方式访问它:

var conString = Settings.Default.conString;

它也将被编译到项目中,只有在app.config文件可用时才会被覆盖。

此外,app.config文件必须是与可执行文件.exe文件位于同一文件夹中的文件,并且必须具有相同的名称。例如,如果它是myprogram.exe,则myprogram.config文件应位于同一目录中。