Power-Maverick / PCF-CustomControlBuilder

XrmToolBox Plugin for building and deploying custom control using PCF
MIT License
40 stars 6 forks source link

[Bug]: ControlManifest.Input.xml files that contain a "<" within an attribute value prevents the control from being loaded. #68

Open pr0ctor opened 10 months ago

pr0ctor commented 10 months ago

Contact Details

No response

What happened?

I created a PCF Control and when trying to load the control using this plugin it gave the following message: "An error occured while retrieving existing project details. Please report an issue on GitHub Page" and no other information.

After some investigation, I found that the plugin failed when I reenabled a <property /> which included the text <code> within an attribute value. A full example would look like this: <property name="name" display-name-key="name" description-key="Name <name>" of-type="SingleLine.Text" usage="bound" required="true" />

It also works when there is a > but doesn't work when there is the opening < anywhere within the attribute string value. Updating the value from the user interface and attempting to add either > or < parses it out into $gt; and $lt; respectively, but there's no indication regarding why its failing to open the control when not HTML encoded. This issue likely occurs with the occurrence of any < in any attribute string value in the entire xml file but I did not do exhaustive testing.

I downgraded by a few versions to see if it had worked there but it did not. The same thing occurs on the newest version of the plugin tool. I am using the newest version of XrmToolBox.

XrmToolBox generated an exception trace log and the most relevant portions of the log are as follows:

************** Exception Text **************
System.NullReferenceException: Object reference not set to an instance of an object.
   at Maverick.PCF.Builder.PCFBuilder.PopulateControlDetails()
   at Maverick.PCF.Builder.PCFBuilder.PCFBuilder_Load(Object sender, EventArgs e)
   at System.Windows.Forms.UserControl.OnLoad(EventArgs e)
   at System.Windows.Forms.Control.CreateControl(Boolean fIgnoreVisible)
   at System.Windows.Forms.Control.CreateControl(Boolean fIgnoreVisible)
   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.Form.WmShowWindow(Message& m)
   at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)

What version of the tool are you using?

2.2023.6.162

What version of XrmToolBox are you running?

No response

Relevant log output

************** Exception Text **************
System.NullReferenceException: Object reference not set to an instance of an object.
   at Maverick.PCF.Builder.PCFBuilder.PopulateControlDetails()
   at Maverick.PCF.Builder.PCFBuilder.PCFBuilder_Load(Object sender, EventArgs e)
   at System.Windows.Forms.UserControl.OnLoad(EventArgs e)
   at System.Windows.Forms.Control.CreateControl(Boolean fIgnoreVisible)
   at System.Windows.Forms.Control.CreateControl(Boolean fIgnoreVisible)
   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.Form.WmShowWindow(Message& m)
   at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
power-maverick-bot[bot] commented 10 months ago

Thanks for opening your first issue here! Please make sure you have given us as much context as possible. One of the repo maintainer will respond as soon as possible.

github-actions[bot] commented 10 months ago

Thank you for creating your first issue. This will help me improve this tool.