На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
  
> Ошибка .NET на другом компьютере
    Здравствуйте форумчане.
    Сразу оговорюсь, я не программист, но кое какие знания у меня есть.
    Так что сильно меня не убивайте.
    Проблема вот какая:
    Мой бывший сотрудик в далекие 2005-е написал программу на Visual Studio 2005
    Естественно она не работает с windows 7.
    У меня на компьютере установлен Visual Studio 2015.
    С его помощую к открыл проект он атоматически обновил проект на новую версию, естественно выдал кучу ошибок...
    В общем (спасибо вам большое) с помощью форума я исправил все ошибки и проект запустился. Отлично работает, но только на моем компьютере где установлен висуал .
    Как только я переношу скомпилированный файл на другой компьютер (тоже windows 7 64 bit ) выскакивает ошибка .net framework
    Прикреплённый файлПрикреплённый файлUntitled.jpg (70,45 Кбайт, скачиваний: 326)
    Я уже вторую неделю бьюсь над этой проблемой перерыл весь форум, но или ошибка не исчезает или я просто не понимаю некоторые ответы.
    Устанавливал Разные версии .net на оба комьютера, ничего не помогает.
    Скажите пожалуйсто какую часть программы выставить на форуме, чтобы можно было понять в чем проблема.
    Заранее благодарен.
      Скопируй всё соообшение из формы ошибки и запости его сюда.
        добаВь try-catch в getRegistryValue метод.
          Цитата MIF @
          Скопируй всё соообшение из формы ошибки и запости его сюда.

          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 Anorad_test.frmMF.getRegsitryValue(String KeyName)
          at Anorad_test.frmMF.RegistryValidation()
          at Anorad_test.frmMF.Form1_Load(Object sender, EventArgs e)
          at System.EventHandler.Invoke(Object sender, EventArgs e)
          at System.Windows.Forms.Form.OnLoad(EventArgs e)
          at System.Windows.Forms.Form.OnCreateControl()
          at System.Windows.Forms.Control.CreateControl(Boolean fIgnoreVisible)
          at System.Windows.Forms.Control.CreateControl()
          at System.Windows.Forms.Control.WmShowWindow(Message& m)
          at System.Windows.Forms.Control.WndProc(Message& m)
          at System.Windows.Forms.ScrollableControl.WndProc(Message& m)
          at System.Windows.Forms.ContainerControl.WndProc(Message& m)
          at System.Windows.Forms.Form.WmShowWindow(Message& m)
          at System.Windows.Forms.Form.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.36373 built by: FX452RTMLDR
          CodeBase: file:///C:/Windows/Microsoft.NET/Framework/v4.0.30319/mscorlib.dll
          ----------------------------------------
          Anorad test
          Assembly Version: 1.0.0.0
          Win32 Version: 1.0.0.0
          CodeBase: file:///E:/Anorad%20test.exe
          ----------------------------------------
          Microsoft.VisualBasic
          Assembly Version: 10.0.0.0
          Win32 Version: 12.0.52373.36373 built by: FX452RTMLDR
          CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/Microsoft.VisualBasic/v4.0_10.0.0.0__b03f5f7f11d50a3a/Microsoft.VisualBasic.dll
          ----------------------------------------
          System
          Assembly Version: 4.0.0.0
          Win32 Version: 4.0.30319.36373 built by: FX452RTMLDR
          CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System/v4.0_4.0.0.0__b77a5c561934e089/System.dll
          ----------------------------------------
          System.Core
          Assembly Version: 4.0.0.0
          Win32 Version: 4.0.30319.36373 built by: FX452RTMLDR
          CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Core/v4.0_4.0.0.0__b77a5c561934e089/System.Core.dll
          ----------------------------------------
          System.Windows.Forms
          Assembly Version: 4.0.0.0
          Win32 Version: 4.0.30319.36373 built by: FX452RTMLDR
          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.36373 built by: FX452RTMLDR
          CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Drawing/v4.0_4.0.0.0__b03f5f7f11d50a3a/System.Drawing.dll
          ----------------------------------------
          System.Runtime.Remoting
          Assembly Version: 4.0.0.0
          Win32 Version: 4.0.30319.36373 built by: FX452RTMLDR
          CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Runtime.Remoting/v4.0_4.0.0.0__b77a5c561934e089/System.Runtime.Remoting.dll
          ----------------------------------------
          System.Configuration
          Assembly Version: 4.0.0.0
          Win32 Version: 4.0.30319.36373 built by: FX452RTMLDR
          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.36373 built by: FX452RTMLDR
          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.

          Добавлено
          Цитата MIF @
          добаВь try-catch в getRegistryValue метод.

          извени, не понял, что куда добавить?
            Alexspam1, под отладчиком можешь посмотреть где происходит ошибка в методе getRegistryValue ?
              Цитата kosten @

              не могу, debug и built ошибок не показывают

              Добавлено
              Цитата MIF @
              добаВь try-catch в getRegistryValue метод.



              Private Function getRegsitryValue(ByVal KeyName As String) As String
              Dim TempKeyName As RegistryKey =
              Registry.LocalMachine.OpenSubKey("Software\Rockwell Automation\Anorad Test\TestSettings")
              getRegsitryValue = TempKeyName.GetValue(KeyName)
              TempKeyName.Close()
              Return getRegsitryValue


              End Function


              куда добавить?
                Цитата Alexspam1 @
                Dim TempKeyName As RegistryKey = Registry.LocalMachine.OpenSubKey("Software\Rockwell Automation\Anorad Test\TestSettings")
                getRegsitryValue = TempKeyName.GetValue(KeyName)

                Видимо на другом компе такого ключа реестра просто нет, поэтому переменная TempKeyName остается не иницииализированной, и соотв-но на следующей строке (TempKeyName.GetValue) возникает ошибка
                Сообщение отредактировано: leo -
                  Цитата leo @
                  Видимо на другом компе такого ключа реестра просто нет

                  я думал это функция как раз и добавляет ключ
                    Нет, OpenSubKey только открывает уже существующий ключ. Если нужно открыть или создать, то используй CreateSubKey
                      Цитата leo @
                      Видимо на другом компе такого ключа реестра просто нет

                      на компьютере с отладчиком тоже нет этого ключа, но все работает
                        Цитата Alexspam1 @
                        на компьютере с отладчиком тоже нет этого ключа, но все работает

                        Ты уверен, что нет? Или что "все работает"?

                        См. описание OpenSubKey
                        Цитата
                        If the specified subkey cannot be found, then null is returned.
                        Вот у тебя на следующей строке и возникает исключение "System.NullReferenceException: Object reference not set to an instance of an object.", т.к. TempKeyName = Null
                          Цитата leo @
                          Ты уверен, что нет? Или что "все работает"?

                          100% уверен
                            Попробуй так
                            ExpandedWrap disabled
                              if TempKeyName IsNot Nothing then
                                getRegsitryValue = TempKeyName.GetValue(KeyName)
                                TempKeyName.Close()
                              end if
                              Цитата leo @
                              Попробуй так

                              Супер спасибо, все работает
                              0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
                              0 пользователей:


                              Рейтинг@Mail.ru
                              [ Script execution time: 0,0446 ]   [ 18 queries used ]   [ Generated: 18.04.24, 07:59 GMT ]