app.config и 64-разрядные машины

У меня есть приложение, которое хорошо работает в 32-разрядных системах, но перестало работать в системах XP 64 битов. Я разыскал его к строке подключения, определенной в моем app.config таким образом:

  <connectionStrings>
    <clear/>
    <add name="IFDSConnectionString" 
        connectionString="Data Source=fdsdata;Initial Catalog=IFDS;
        Trusted_Connection=true;Connect Timeout=0"
        providerName="System.Data.SqlClient" />
  </connectionStrings>

Когда я пытаюсь сослаться на него в коде, я нахожу что ConfigurationManager. Набор ConnectionStrings только содержит строку подключения LocalSqlServer из machine.config файла и не моей пользовательской строки.

Другая причуда - то, что это хорошо работает, когда я запускаю приложение из Visual Studio. Только, когда у меня заканчивается папка выпуска, строка подключения не становится определенной. .exe.config файл приложения находится там в папке выпуска наряду с .exe файлом и актуален.

8
задан skaffman 28 May 2010 в 16:30
поделиться

2 ответа

В конце концов я нашел объяснение здесь: http://social.msdn.microsoft.com/forums/en-US/clr/thread/c25cd2c0-653d-4890-97b8-d2c9ceda2949/

Короче , это происходит при использовании файла манифеста для приложения. В этом случае фреймворк ищет application_name.config, а НЕ application_name.exe.config. Один из способов решения проблемы - переименовать файл конфигурации после сборки приложения. Другой - добавить в манифест узел assemblyIdentity. В моем случае я смог просто удалить файл манифеста, и жизнь снова стала хорошей.

3
ответ дан 6 December 2019 в 00:05
поделиться

Добавьте строку подключения в файл devenv.exe.config.

Это расположено

Visual Studio 2010

$$ InstallLocation $$ \ Microsoft Visual Studio 10.0 \ Common7 \ IDE \ devenv.exe.config

Visual Studio 2008

$$ InstallLocation $$ \ Microsoft Visual Studio 9.0 \ Common7 \ IDE \ devenv.exe.config

1
ответ дан 6 December 2019 в 00:05
поделиться
Другие вопросы по тегам:

Похожие вопросы: