Testing Custom Shell Packages

Discussions related to SoftPro Select user interface development.

Moderator: Phil Barton

Post Reply
danvanf
Posts: 45
Joined: Fri Nov 07, 2008 10:45 am
Location: Dayton, Ohio
Contact:

Testing Custom Shell Packages

Post by danvanf » Fri Dec 08, 2017 1:25 pm

Hello Dev's,
I want to allow a couple users to test an Shell Package using the Exp Hive. After registering the package on the test machine and starting Select using the Exp hive, Select crashes with a null reference error logged.

I'm able to make it work, but wondering if I'm either missing a step, or operating outside the normal expected bounds. The latter is why I'm a bit vague with the information.

So the question is, should I be able to run tests on a machine that isn't a development machine, thus doesn't have the SDK installed?

Thanks for the feedback,
-Dan

If you find it interesting here's the Select Log for the null reference:
[12:21:49.167] [0x00000001] Creating configuration file: C:\Users\xxxx\AppData\Roaming\SoftPro\Select\4.3exp\Select(exp).user.config
[12:21:49.480] [0x00000002] Failed to find the settings key 'Software\SoftPro\Select\4.3exp\OptionSettings\{508266A0-2CBB-4E8A-8AF3-4B61153EBBB2}'.
[12:21:49.574] [0x00000001] Loading auto load packages..
[12:21:49.574] [0x00000001] Finished loading auto load packages.
[12:21:49.574] [0x00000002] Failed to find the settings key 'Software\SoftPro\Select\4.3exp\OptionSettings\{508266A0-2CBB-4E8A-8AF3-4B61153EBBB2}'.
[12:21:49.589] [0x00000003] System.NullReferenceException: Object reference not set to an instance of an object.
Stack Trace:
at SoftPro.Select.HelpProvider.BuildWebUrl()
at SoftPro.Select.HelpProvider.get_WebUrl()
at SoftPro.Select.RootPackage.OnInitialize()
at SoftPro.Select.Shell.Package.SoftPro.Select.Shell.IPackage.Initialize(IServiceProvider sp)
at SoftPro.Select.Runtime.OnInitialize()
at SoftPro.Select.Runtime.Start()
at SoftPro.Select.Automation.EnvICE.Start()
XML Log:
<ILExceptionData>
<Point module="Select.exe" classFull="SoftPro.Select.HelpProvider" methodName="BuildWebUrl" methodSignature="Void BuildWebUrl()" methodToken="0x6000059" ILOffset="27" />
<Point module="Select.exe" classFull="SoftPro.Select.HelpProvider" methodName="get_WebUrl" methodSignature="System.Uri get_WebUrl()" methodToken="0x6000058" ILOffset="14" />
<Point module="Select.exe" classFull="SoftPro.Select.RootPackage" methodName="OnInitialize" methodSignature="Void OnInitialize()" methodToken="0x6000068" ILOffset="1652" />
<Point module="SoftPro.Select.Shell.dll" classFull="SoftPro.Select.Shell.Package" methodName="SoftPro.Select.Shell.IPackage.Initialize" methodSignature="Void SoftPro.Select.Shell.IPackage.Initialize(System.IServiceProvider)" methodToken="0x600062f" ILOffset="7" />
<Point module="Select.exe" classFull="SoftPro.Select.Runtime" methodName="OnInitialize" methodSignature="Void OnInitialize()" methodToken="0x60001a9" ILOffset="24" />
<Point module="Select.exe" classFull="SoftPro.Select.Runtime" methodName="Start" methodSignature="Void Start()" methodToken="0x60001a6" ILOffset="75" />
<Point module="Select.exe" classFull="SoftPro.Select.Automation.EnvICE" methodName="Start" methodSignature="Void Start()" methodToken="0x6000a33" ILOffset="263" />
</ILExceptionData>

[12:21:49.605] [0x00000001] *** End of Log ***


Here is the Event Viewer entry for the null reference:

System.NullReferenceException: Object reference not set to an instance of an object.
Stack Trace:
at SoftPro.Select.Managers.ConfigurationManager.SetupConfigurationSections(String productName, Dictionary`2 arguments)
at SoftPro.Select.Runtime.OnSetup()
XML Log:
<ILExceptionData>
<Point module="Select.exe" classFull="SoftPro.Select.Managers.ConfigurationManager" methodName="SetupConfigurationSections" methodSignature="Void SetupConfigurationSections(System.String, System.Collections.Generic.Dictionary`2[System.Guid,System.Collections.Generic.Dictionary`2[System.String,System.String]])" methodToken="0x6000469" ILOffset="89" />
<Point module="Select.exe" classFull="SoftPro.Select.Runtime" methodName="OnSetup" methodSignature="Void OnSetup()" methodToken="0x60001a8" ILOffset="43" />
</ILExceptionData>


Call Stack:
at System.Environment.GetStackTrace(Exception e, Boolean needFileInfo)
at System.Environment.get_StackTrace()
at System.Diagnostics.TraceEventCache.get_Callstack()
at SoftPro.Select.LogTraceListener.OnLog(TraceEventCache eventCache, String message, TraceEventType eventType)
at SoftPro.Select.LogTraceListener.TraceEvent(TraceEventCache eventCache, String source, TraceEventType eventType, Int32 id, String message)
at System.Diagnostics.TraceInternal.TraceEvent(TraceEventType eventType, Int32 id, String format, Object[] args)
at SoftPro.Select.Runtime.OnSetup()
at SoftPro.Select.Runtime.Start()
at SoftPro.Select.Automation.EnvICE.Start()
at System.Runtime.Remoting.Messaging.Message.Dispatch(Object target)
at System.Runtime.Remoting.Messaging.StackBuilderSink.SyncProcessMessage(IMessage msg)
at System.Runtime.Remoting.Messaging.ServerObjectTerminatorSink.SyncProcessMessage(IMessage reqMsg)
at SoftPro.Select.Shell.SynchronizationContextAspect.SyncProcessMessage(IMessage msg)
at System.Runtime.Remoting.Lifetime.LeaseSink.SyncProcessMessage(IMessage msg)
at System.Runtime.Remoting.Messaging.ServerContextTerminatorSink.SyncProcessMessage(IMessage reqMsg)
at System.Runtime.Remoting.Channels.CrossContextChannel.SyncProcessMessageCallback(Object[] args)
at System.Threading.Thread.CompleteCrossContextCallback(InternalCrossContextDelegate ftnToCall, Object[] args)
at System.Threading.Thread.InternalCrossContextCallback(Context ctx, IntPtr ctxID, Int32 appDomainID, InternalCrossContextDelegate ftnToCall, Object[] args)
at System.Runtime.Remoting.Channels.CrossContextChannel.SyncProcessMessage(IMessage reqMsg)
at System.Runtime.Remoting.Proxies.RemotingProxy.CallProcessMessage(IMessageSink ms, IMessage reqMsg, ArrayWithSize proxySinks, Thread currentThread, Context currentContext, Boolean bSkippingContextChain)
at System.Runtime.Remoting.Proxies.RemotingProxy.InternalInvoke(IMethodCallMessage reqMcmMsg, Boolean useDispatchMessage, Int32 callType)
at System.Runtime.Remoting.Proxies.RemotingProxy.Invoke(IMessage reqMsg)
at System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke(MessageData& msgData, Int32 type)
at SoftPro.Select.Automation.EnvICE.Start()
at SoftPro.Select.Automation.EnvICE.Run(String rootSuffix, Boolean noSplash, Boolean setupMode, Boolean log, Boolean embedding, Boolean allowMultipleInstances, Boolean detectLeaks, Dictionary`2 args, String freeArg)
at SoftPro.Select.Program.Main(String[] args)
I blog at http://DanVanFleet.com on SoftPro and other things

John Morris
Posts: 411
Joined: Thu Sep 11, 2008 11:35 am
Location: Raleigh, NC, USA
Contact:

Re: Testing Custom Shell Packages

Post by John Morris » Fri Dec 08, 2017 3:58 pm

No, that isn't supported. You can only run /Exp hive mode on a developer machine.

If you need to distribute the app, even for testing, you'll need a license key in the package.
John Morris
Sr. Software Architect
SoftPro

danvanf
Posts: 45
Joined: Fri Nov 07, 2008 10:45 am
Location: Dayton, Ohio
Contact:

Re: Testing Custom Shell Packages

Post by danvanf » Fri Dec 08, 2017 5:43 pm

Excellent thanks, that was my concern. The license process had already started.
I blog at http://DanVanFleet.com on SoftPro and other things

Post Reply