Развертывание отладочной версии приложения vb.net - PullRequest
0 голосов
/ 29 марта 2010

Я разработал приложение в vb.net. Я использую dll, который я строю как часть другого проекта в моем решении. По какой-то причине я не получаю полную функциональность моего приложения с dll, созданной как «релизная» версия, но она работает, если dll создана как «отладочная» версия (это совсем другая проблема). У меня пока нет проблем с использованием отладочной версии. Тем не менее, проблема у меня заключается в том, что я пытаюсь развернуть приложение в другой системе, и если я разверну отладочную версию DLL, я получу ошибку времени выполнения (см. Ниже). У меня установлен .NET Framework. Мне просто интересно, что нужно установить, чтобы позволить мне использовать отладочную версию новой системы?

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 tocapp.Form1.Form1_Load(Object sender, EventArgs e) in C:\Documents and Settings\gregh\My Documents\Visual Studio 2005\Projects\TOCApp2\TOCApp2\Form1.vb:line 104
   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: 2.0.0.0
    Win32 Version: 2.0.50727.3607 (GDR.050727-3600)
    CodeBase: file:///c:/WINDOWS/Microsoft.NET/Framework/v2.0.50727/mscorlib.dll
----------------------------------------
tocapp
    Assembly Version: 1.0.0.0
    Win32 Version: 1.0.0.0
    CodeBase: file:///C:/Program%20Files/Sparnet/tocapp.exe
----------------------------------------
Microsoft.VisualBasic
    Assembly Version: 8.0.0.0
    Win32 Version: 8.0.50727.3053 (netfxsp.050727-3000)
    CodeBase: file:///C:/WINDOWS/assembly/GAC_MSIL/Microsoft.VisualBasic/8.0.0.0__b03f5f7f11d50a3a/Microsoft.VisualBasic.dll
----------------------------------------
System
    Assembly Version: 2.0.0.0
    Win32 Version: 2.0.50727.3053 (netfxsp.050727-3000)
    CodeBase: file:///C:/WINDOWS/assembly/GAC_MSIL/System/2.0.0.0__b77a5c561934e089/System.dll
----------------------------------------
System.Windows.Forms
    Assembly Version: 2.0.0.0
    Win32 Version: 2.0.50727.3053 (netfxsp.050727-3000)
    CodeBase: file:///C:/WINDOWS/assembly/GAC_MSIL/System.Windows.Forms/2.0.0.0__b77a5c561934e089/System.Windows.Forms.dll
----------------------------------------
System.Drawing
    Assembly Version: 2.0.0.0
    Win32 Version: 2.0.50727.3053 (netfxsp.050727-3000)
    CodeBase: file:///C:/WINDOWS/assembly/GAC_MSIL/System.Drawing/2.0.0.0__b03f5f7f11d50a3a/System.Drawing.dll
----------------------------------------
System.Runtime.Remoting
    Assembly Version: 2.0.0.0
    Win32 Version: 2.0.50727.3053 (netfxsp.050727-3000)
    CodeBase: file:///C:/WINDOWS/assembly/GAC_MSIL/System.Runtime.Remoting/2.0.0.0__b77a5c561934e089/System.Runtime.Remoting.dll
----------------------------------------
SparnetMapControl
    Assembly Version: 0.0.0.0
    Win32 Version: 0.0.0.0
    CodeBase: file:///C:/Program%20Files/Sparnet/SparnetMapControl.DLL
----------------------------------------
System.Data
    Assembly Version: 2.0.0.0
    Win32 Version: 2.0.50727.3053 (netfxsp.050727-3000)
    CodeBase: file:///C:/WINDOWS/assembly/GAC_32/System.Data/2.0.0.0__b77a5c561934e089/System.Data.dll
----------------------------------------
System.Xml
    Assembly Version: 2.0.0.0
    Win32 Version: 2.0.50727.3082 (QFE.050727-3000)
    CodeBase: file:///C:/WINDOWS/assembly/GAC_MSIL/System.Xml/2.0.0.0__b77a5c561934e089/System.Xml.dll
----------------------------------------
Oracle.DataAccess
    Assembly Version: 10.2.0.100
    Win32 Version: 10.2.0.100
    CodeBase: file:///C:/WINDOWS/assembly/GAC/Oracle.DataAccess/10.2.0.100__89b483f429c47342/Oracle.DataAccess.dll
----------------------------------------
System.EnterpriseServices
    Assembly Version: 2.0.0.0
    Win32 Version: 2.0.50727.3053 (netfxsp.050727-3000)
    CodeBase: file:///C:/WINDOWS/assembly/GAC_32/System.EnterpriseServices/2.0.0.0__b03f5f7f11d50a3a/System.EnterpriseServices.dll
----------------------------------------
System.Configuration
    Assembly Version: 2.0.0.0
    Win32 Version: 2.0.50727.3053 (netfxsp.050727-3000)
    CodeBase: file:///C:/WINDOWS/assembly/GAC_MSIL/System.Configuration/2.0.0.0__b03f5f7f11d50a3a/System.Configuration.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.

Ответы [ 2 ]

0 голосов
/ 15 марта 2013

"если я изменю:" Свойства конфигурации "=>" C / C ++ "=>" Генерация кода "=>" Библиотека времени выполнения от "Многопоточная отладочная DLL (/ MDd)" до "Многопоточная DLL (/ MD) "тогда функциональность, которую я ищу, больше не работает"

Я знаю, что это маленький старый пост, но может быть кому-то полезен.

Это похоже на проблему связывания, прежде всего. Вы не можете смешивать библиотеки для отладки с проектом, который не включает отладку, а также убедитесь, что обе библиотеки зависимостей имеют одинаковый тип сборки. Обе библиотеки и проект должны иметь одинаковые свойства сборки: Отладочный / многопоточный проект должен быть связан с отладочными / многопоточными библиотеками, и выпуск / многопоточный проект должен быть связан с выпуском / многопоточными библиотеками.

Убедитесь, что это так в свойствах проекта.

также вы не можете развернуть отладочную версию проекта c ++, поскольку она должна быть выпущена. это связано с тем, что целевая ОС всегда имеет выпускную версию библиотек времени выполнения c ++;) отладочная версия DLL-библиотек c ++ устанавливается только вместе с VS или, возможно, также с некоторыми другими средами разработки.

также обратите внимание, что c ++ специфичен для библиотек времени выполнения c ++, приложение без специального файла манифеста, в котором вы указали диапазон для версии библиотек времени выполнения c ++, в большинстве случаев явно ориентировано на версию библиотек времени выполнения c ++, для которой вы создали свое приложение. поэтому убедитесь, что вы развертываете исполняемые библиотеки c ++, распространяемые с той же версией, вместе с вашим приложением (обычно это около 3 Мбайт, без особых проблем в наши дни).

или связывайте все статически (более крупное приложение, больший объем памяти, ад для настройки среды, но нет необходимости в общих библиотеках времени выполнения c ++ - это главная причина, по которой мне нравится deplhi == нет зависимости).

0 голосов
/ 19 апреля 2010

Похоже, что ваша "базовая dll" может иметь ошибку, которая исчезает, как только вы делаете отладочную сборку; Это может быть вызвано многими причинами, начиная от проблем с синхронизацией потоков (которые исчезают при удалении вызовов DebugWrite() из сборок Release) и заканчивая повреждениями памяти из плохо инициированной памяти.

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