2010-03-29 2 views
0

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

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. 
+0

У меня не было проблем с передачей отладочных версий APP или DLL. «Отладка» в основном означает добавление «лишних» элементов, а не * необходимых * для работы. Вышеприведенная ошибка больше похожа на реальную вещь. Посмотрим, как выглядит ваш код VB вокруг этого номера строки. – tobrien

+0

Это построено из VS2008? Если да, в какой структуре вы нацеливаетесь, 2.0, 3.0 или 3.5? Если какой-либо из последних двух они установлены на другой машине? Кроме того, ваша проблема может быть не в том, что удаленная машина не будет запускать вашу отладочную версию, а вместо этого отладочная версия является единственной рабочей версией и работает только на вашем компьютере. Сначала я бы рассмотрел проблему отладки/выпуска. В противном случае вы можете решить, что «мои навыки тенниса плохие», посетив тренера, когда на самом деле у вас сломанная рука. –

+0

Я запускаю VS 2008. Ошибка возникает, когда я пытаюсь открыть файл с помощью вызова функциональности, предоставляемой в разработанной dll. Кстати, я нацелен на фреймворк 2.0 и устанавливаю его на обеих машинах. – GregH

ответ

0

Похоже, ваш «основной DLL» может иметь ошибку, которая исчезает, как только вы делаете отладки сборки; Есть много потенциальных причин для этого, начиная от проблем синхронизации нити (которые исчезают, когда вызовы DebugWrite() удаляются из релизов), вплоть до сбоев памяти из плохо инициированной памяти.

0

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

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

это швы как связывая проблему, прежде чем что-либо еще вы не можете смешивать либрилы для отладки с проектом, который не включает отладку, а также убедитесь, что обе библиотеки зависимостей имеют одинаковый тип сборки. Обе библиотеки и проект должны иметь одинаковые свойства здания: Отладочный/многопоточный проект должен связываться с библиотеками debug/multithreaded, и релиз/многопоточный проект должен связываться с релизными/многопоточными библиотеками.

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

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

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

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

Смежные вопросы