Ошибка записи .txt файла после установки системы с использованием C # - PullRequest
0 голосов
/ 30 марта 2020

У меня ошибка при запуске системы, созданной в C # по VS 2019. Что происходит в следующем, в IDE все работает нормально, но есть одна функция, которая активируется нажатием кнопки, эта функция создает .TXT с двумя строками (мини-база данных), но после генерации установщика для системы самим VS2019 и установки программы на компьютер эта функция выдает следующую ошибку.

Что мне делать?

     private void SaveTXT(int _fontSize, bool _autoRefresh) {
        string path = System.AppDomain.CurrentDomain.BaseDirectory.ToString();
        //string path = Path.GetDirectoryName(Application.ExecutablePath);

        File.Delete(@path + "data.txt");

        FileStream fs = new FileStream(@path + "data.txt", FileMode.Append);
        StreamWriter sw = new StreamWriter(fs);

        sw.WriteLine(_fontSize);
        sw.WriteLine(_autoRefresh);

        sw.Flush();
        sw.Close();
        fs.Close();
    }

Ошибка:

Consulte o final desta mensagem para obter detalhes sobre como chamar a 
depuração just-in-time (JIT) em vez desta caixa de diálogo.

************** Texto de Exceção **************
System.NullReferenceException: Referência de objeto não definida para uma instância de um objeto.
   em Spotics.frmMain.switchSongOff_SwitchStateChanged(Object sender, EventArgs e)
   em XanderUI.XUISwitch.OnSwitchStateChanged()
   em XanderUI.XUISwitch.OnMouseDown(MouseEventArgs e)
   em System.Windows.Forms.Control.WmMouseDown(Message& m, MouseButtons button, Int32 clicks)
   em System.Windows.Forms.Control.WndProc(Message& m)
   em System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
   em System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
   em System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)


************** Assemblies Carregados **************
mscorlib
    Versão do Assembly: 4.0.0.0
    Versão do Win32: 4.8.4121.0 built by: NET48REL1LAST_C
    Base de Código: file:///C:/Windows/Microsoft.NET/Framework/v4.0.30319/mscorlib.dll
----------------------------------------
Spotics
    Versão do Assembly: 2.0.0.0
    Versão do Win32: 2.0.0.0
    Base de Código: file:///D:/Program%20Files%20(x86)/RBalconi/Spotics/Spotics.exe
----------------------------------------
System.Windows.Forms
    Versão do Assembly: 4.0.0.0
    Versão do Win32: 4.8.4121.0 built by: NET48REL1LAST_C
    Base de Código: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.Windows.Forms/v4.0_4.0.0.0__b77a5c561934e089/System.Windows.Forms.dll
----------------------------------------
System
    Versão do Assembly: 4.0.0.0
    Versão do Win32: 4.8.4001.0 built by: NET48REL1LAST_C
    Base de Código: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System/v4.0_4.0.0.0__b77a5c561934e089/System.dll
----------------------------------------
System.Drawing
    Versão do Assembly: 4.0.0.0
    Versão do Win32: 4.8.3752.0 built by: NET48REL1
    Base de Código: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.Drawing/v4.0_4.0.0.0__b03f5f7f11d50a3a/System.Drawing.dll
----------------------------------------
System.Configuration
    Versão do Assembly: 4.0.0.0
    Versão do Win32: 4.8.3752.0 built by: NET48REL1
    Base de Código: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.Configuration/v4.0_4.0.0.0__b03f5f7f11d50a3a/System.Configuration.dll
----------------------------------------
System.Core
    Versão do Assembly: 4.0.0.0
    Versão do Win32: 4.8.4121.0 built by: NET48REL1LAST_C
    Base de Código: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.Core/v4.0_4.0.0.0__b77a5c561934e089/System.Core.dll
----------------------------------------
System.Xml
    Versão do Assembly: 4.0.0.0
    Versão do Win32: 4.8.3752.0 built by: NET48REL1
    Base de Código: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.Xml/v4.0_4.0.0.0__b77a5c561934e089/System.Xml.dll
----------------------------------------
XanderUI
    Versão do Assembly: 1.0.0.0
    Versão do Win32: 1.0.0.0
    Base de Código: file:///D:/Program%20Files%20(x86)/RBalconi/Spotics/XanderUI.DLL
----------------------------------------
mscorlib.resources
    Versão do Assembly: 4.0.0.0
    Versão do Win32: 4.8.3752.0 built by: NET48REL1
    Base de Código: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/mscorlib.resources/v4.0_4.0.0.0_pt-BR_b77a5c561934e089/mscorlib.resources.dll
----------------------------------------
System.Windows.Forms.resources
    Versão do Assembly: 4.0.0.0
    Versão do Win32: 4.8.3752.0 built by: NET48REL1
    Base de Código: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.Windows.Forms.resources/v4.0_4.0.0.0_pt-BR_b77a5c561934e089/System.Windows.Forms.resources.dll
----------------------------------------

************** Depuração JIT **************
Para habilitar a depuração just-in-time (JIT), o arquivo .config deste
aplicativo ou computador (machine.config) deve ter o valor
jitDebugging definido na seção system.windows.forms.
O aplicativo também deve ser compilado com a depuração
habilitada.

Por exemplo:

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

Quando a depuração JIT está habilitada, qualquer exceção sem tratamento
será enviada ao depurador JIT registrado no computador,
em vez de ser tratada nesta caixa de diálogo.



Спасибо

Ответы [ 2 ]

0 голосов
/ 30 марта 2020

Попробуйте это:

string path = System.AppDomain.CurrentDomain.BaseDirectory.ToString();
FileStream fileStream = new FileStream(@path + "data.txt", FileMode.Create, FileAccess.Write);
StreamWriter streamWriter = new StreamWriter(fileStream, Encoding.UTF8);

streamWriter.WriteLine(_fontSize);
streamWriter.WriteLine(_autoRefresh);

streamWriter.Close();
0 голосов
/ 30 марта 2020

Не похоже, что ошибка исходит от этой функции. Из-за ошибки кажется, что функция с ошибкой frmMain.switchSongOff_SwitchStateChanged.

Еще одно замечание: похоже, вы не указали правильный путь к файлу. Вы пропускаете '\' перед "data.txt". В настоящее время то, что у вас есть, будет выглядеть так:

C: \ ExecutableRootFolderdata.txt

вместо

C: \ ExecutableRootFolder \ data.txt

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...