0

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

我使用 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>
4

1 回答 1

1

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

var conString = Settings.Default.conString;

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

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

于 2012-10-15T12:23:23.650 回答