Чтение конфигурационного файла не работает на другом компьютере - PullRequest
1 голос
/ 21 ноября 2011

Я делаю приложение для Windows на c #. Я сделал одно приложение на .NET Framework 3.5, и я использую Windows Vista. Когда я делаю сборку этого приложения и пытаюсь запустить его на другой машине с Windows 7, она не работает.На целевой машине отображается клиентский профиль .NET Framework 4.0 на панели управления. Эта проблема возникает всякий раз, когда я пытаюсь прочитать какое-либо значение из файла CONFIG. Если я не использую файл конфигурации, тогда мое приложение запускается, но я должен использовать файл конфигурации.Для проверки проблемы фреймворка я сделал одно простое приложение, в котором я пытаюсь прочитать значения файла конфигурации при нажатии кнопки как MessageBox.Show(ConfigurationManager.AppSettings["FlagForArchiving"].ToString());, но я получаю ошибку как

See the end of this message for details on invoking 
just-in-time (JIT) debugging instead of this dialog box.

************** Exception Text **************
System.NullReferenceException: Object reference not set to an instance of an object.
   at TestFramework.Form1.button1_Click(Object sender, EventArgs e)
   at System.Windows.Forms.Control.OnClick(EventArgs e)
   at System.Windows.Forms.Button.OnClick(EventArgs e)
   at System.Windows.Forms.Button.OnMouseUp(MouseEventArgs mevent)
   at System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
   at System.Windows.Forms.Control.WndProc(Message& m)
   at System.Windows.Forms.ButtonBase.WndProc(Message& m)
   at System.Windows.Forms.Button.WndProc(Message& m)
   at System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
   at System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
   at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)


************** Loaded Assemblies **************
mscorlib
    Assembly Version: 4.0.0.0
    Win32 Version: 4.0.30319.239 (RTMGDR.030319-2300)
    CodeBase: file:///C:/Windows/Microsoft.NET/Framework/v4.0.30319/mscorlib.dll
----------------------------------------
TestFramework
    Assembly Version: 1.0.0.0
    Win32 Version: 1.0.0.0
    CodeBase: file:///C:/Users/mvi/AppData/Local/Temp/Temp1_test.zip/Release/TestFramework.exe
----------------------------------------
System.Windows.Forms
    Assembly Version: 4.0.0.0
    Win32 Version: 4.0.30319.235 built by: RTMGDR
    CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Windows.Forms/v4.0_4.0.0.0__b77a5c561934e089/System.Windows.Forms.dll
----------------------------------------
System.Drawing
    Assembly Version: 4.0.0.0
    Win32 Version: 4.0.30319.1 built by: RTMRel
    CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Drawing/v4.0_4.0.0.0__b03f5f7f11d50a3a/System.Drawing.dll
----------------------------------------
System
    Assembly Version: 4.0.0.0
    Win32 Version: 4.0.30319.236 built by: RTMGDR
    CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System/v4.0_4.0.0.0__b77a5c561934e089/System.dll
----------------------------------------
System.Configuration
    Assembly Version: 4.0.0.0
    Win32 Version: 4.0.30319.1 (RTMRel.030319-0100)
    CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Configuration/v4.0_4.0.0.0__b03f5f7f11d50a3a/System.Configuration.dll
----------------------------------------
System.Xml
    Assembly Version: 4.0.0.0
    Win32 Version: 4.0.30319.233 built by: RTMGDR
    CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Xml/v4.0_4.0.0.0__b77a5c561934e089/System.Xml.dll
----------------------------------------

************** JIT Debugging **************
To enable just-in-time (JIT) debugging, the .config file for this
application or computer (machine.config) must have the
jitDebugging value set in the system.windows.forms section.
The application must also be compiled with debugging
enabled.

For example:

<configuration>
    <system.windows.forms jitDebugging="true" />
</configuration>

When JIT debugging is enabled, any unhandled exception
will be sent to the JIT debugger registered on the computer
rather than be handled by this dialog box.

Пожалуйста, помогите мне решить мою проблему. Спасибозаранее.

Ответы [ 3 ]

2 голосов
/ 21 ноября 2011

FileNotFoundException означает, что файл конфигурации отсутствует в папке вашего приложения.Убедитесь, что файл конфигурации развернут при публикации приложения.

Да, вам необходимо иметь файл конфигурации на каждом компьютере, на котором установлено приложение.

0 голосов
/ 21 ноября 2011

Измените профиль на .NET Framework 3.5. «Профиль клиента .NET Framework 3.5» имеет несколько ограничений и не будет предлагать все сборки, которые могут вам понадобиться.

0 голосов
/ 21 ноября 2011

Возможно из-за доступа к каталогу.Запустите приложение через администратора, чтобы гарантировать доступ.

...