Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[18.190.153.51] |
|
Сообщ.
#1
,
|
|
|
Здравствуйте форумчане.
Сразу оговорюсь, я не программист, но кое какие знания у меня есть. Так что сильно меня не убивайте. Проблема вот какая: Мой бывший сотрудик в далекие 2005-е написал программу на Visual Studio 2005 Естественно она не работает с windows 7. У меня на компьютере установлен Visual Studio 2015. С его помощую к открыл проект он атоматически обновил проект на новую версию, естественно выдал кучу ошибок... В общем (спасибо вам большое) с помощью форума я исправил все ошибки и проект запустился. Отлично работает, но только на моем компьютере где установлен висуал . Как только я переношу скомпилированный файл на другой компьютер (тоже windows 7 64 bit ) выскакивает ошибка .net framework Прикреплённый файлUntitled.jpg (70,45 Кбайт, скачиваний: 326) Я уже вторую неделю бьюсь над этой проблемой перерыл весь форум, но или ошибка не исчезает или я просто не понимаю некоторые ответы. Устанавливал Разные версии .net на оба комьютера, ничего не помогает. Скажите пожалуйсто какую часть программы выставить на форуме, чтобы можно было понять в чем проблема. Заранее благодарен. |
Сообщ.
#2
,
|
|
|
Скопируй всё соообшение из формы ошибки и запости его сюда.
|
Сообщ.
#3
,
|
|
|
добаВь try-catch в getRegistryValue метод.
|
Сообщ.
#4
,
|
|
|
Цитата 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 метод. извени, не понял, что куда добавить? |
Сообщ.
#5
,
|
|
|
Alexspam1, под отладчиком можешь посмотреть где происходит ошибка в методе getRegistryValue ?
|
Сообщ.
#6
,
|
|
|
Цитата 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 куда добавить? |
Сообщ.
#7
,
|
|
|
Цитата Alexspam1 @ Dim TempKeyName As RegistryKey = Registry.LocalMachine.OpenSubKey("Software\Rockwell Automation\Anorad Test\TestSettings") getRegsitryValue = TempKeyName.GetValue(KeyName) Видимо на другом компе такого ключа реестра просто нет, поэтому переменная TempKeyName остается не иницииализированной, и соотв-но на следующей строке (TempKeyName.GetValue) возникает ошибка |
Сообщ.
#8
,
|
|
|
Цитата leo @ Видимо на другом компе такого ключа реестра просто нет я думал это функция как раз и добавляет ключ |
Сообщ.
#9
,
|
|
|
Нет, OpenSubKey только открывает уже существующий ключ. Если нужно открыть или создать, то используй CreateSubKey
|
Сообщ.
#10
,
|
|
|
Цитата leo @ Видимо на другом компе такого ключа реестра просто нет на компьютере с отладчиком тоже нет этого ключа, но все работает |
Сообщ.
#11
,
|
|
|
Цитата Alexspam1 @ на компьютере с отладчиком тоже нет этого ключа, но все работает Ты уверен, что нет? Или что "все работает"? См. описание OpenSubKey Цитата Вот у тебя на следующей строке и возникает исключение "System.NullReferenceException: Object reference not set to an instance of an object.", т.к. TempKeyName = Null If the specified subkey cannot be found, then null is returned. |
Сообщ.
#12
,
|
|
|
Цитата leo @ Ты уверен, что нет? Или что "все работает"? 100% уверен |
Сообщ.
#13
,
|
|
|
Попробуй так
if TempKeyName IsNot Nothing then getRegsitryValue = TempKeyName.GetValue(KeyName) TempKeyName.Close() end if |
Сообщ.
#14
,
|
|
|
Цитата leo @ Попробуй так Супер спасибо, все работает |