Asked — Edited

Creating Plug In

Hi,

I posted this yesterday but did not show up for some reason.

I am creating my first plug in. Followed the tutorial completely. I keep coming up with the same error constantly.

CA0055 Error Running Code Analysis CA0055 : Could not load C:\Users\Public\Documents\EZ-Builder\Plugins\2463b146-191a-43d0-b69b-5a7034a2aefe\MyFirstplugin.dll. The following error was encountered while reading module 'MyFirstplugin': Assembly reference cannot be resolved: ARC, Version=2015.8.9.0, Culture=neutral, PublicKeyToken=c3a3457c97d352d9. [Errors and Warnings] (Global)

It is pointing to a version not on my system. Did regedit to check registry check and scanned my PC this file referenced does not exist. When add the reference it show current version of ARC keep referencing this version old version. It should be version neutral correct? I have "Copy to local" = False

Message 9 Could not find schema information for the element 'VersionRelease'. C:\Users\jack\Documents\Visual Studio 2013\Projects\MyFirstplugin\MyFirstplugin\plugin.xml 10 4 MyFirstplugin Message 1 Could not find schema information for the element 'PluginV1XML'. C:\Users\jack\Documents\Visual Studio 2013\Projects\MyFirstplugin\MyFirstplugin\plugin.xml 2 2 MyFirstplugin Message 6 Could not find schema information for the element 'PLUGIN_GUID'. C:\Users\jack\Documents\Visual Studio 2013\Projects\MyFirstplugin\MyFirstplugin\plugin.xml 7 4 MyFirstplugin Message 5 Could not find schema information for the element 'LICENSE_URL'. C:\Users\jack\Documents\Visual Studio 2013\Projects\MyFirstplugin\MyFirstplugin\plugin.xml 6 4 MyFirstplugin Message 2 Could not find schema information for the element 'FRIENDLY_NAME'. C:\Users\jack\Documents\Visual Studio 2013\Projects\MyFirstplugin\MyFirstplugin\plugin.xml 3 4 MyFirstplugin Message 3 Could not find schema information for the element 'DLL_FILENAME'. C:\Users\jack\Documents\Visual Studio 2013\Projects\MyFirstplugin\MyFirstplugin\plugin.xml 4 4 MyFirstplugin Message 8 Could not find schema information for the element 'DESCRIPTION'. C:\Users\jack\Documents\Visual Studio 2013\Projects\MyFirstplugin\MyFirstplugin\plugin.xml 9 4 MyFirstplugin Message 7 Could not find schema information for the element 'CATEGORY_TYPE'. C:\Users\jack\Documents\Visual Studio 2013\Projects\MyFirstplugin\MyFirstplugin\plugin.xml 8 4 MyFirstplugin Message 4 Could not find schema information for the element 'AUTHOR_NAME'. C:\Users\jack\Documents\Visual Studio 2013\Projects\MyFirstplugin\MyFirstplugin\plugin.xml 5 4 MyFirstplugin Error 10 Code Analysis detected errors. See Code Analysis results window or log file for details. MyFirstplugin

It shows up in ARC under plugins and can placed in window. No buttons show and not functional.

Using VS 2013 and VB.Net

Thanks.


ARC Pro

Upgrade to ARC Pro

Unleash your robot's full potential with the cutting-edge features and intuitive programming offered by Synthiam ARC Pro.

PRO
Synthiam
#1  

Many steps of the plugin tutorial have been missed. It would be easier to follow the tutorial than for me to copy and paste the tutorial :)

Hard to say because there are so many errors. But maybe the reference to ARC isn't added? Maybe the reference to ezb isn't added? Maybe those two references are set to be copied when they shouldn't?

Here's a direct link to the tutorial for creating a plugin: https://synthiam.com/Tutorials/UserTutorials/146/1

#2  

All references are added and the plugin compiles fine.. I am not sure why to would try reference any version of ARC much less one form 7 months ago. Went over tutorial 10 times and started from scratch.

It seem to be unable the information plugin.xml

Here it is and looks ok..

<?xml version="1.0" ?> <PluginV1XML xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <FRIENDLY_NAME>Test Plugin</FRIENDLY_NAME> <DLL_FILENAME>MyFirstplugin.dll</DLL_FILENAME> <AUTHOR_NAME>jackphillips1953</AUTHOR_NAME> <LICENSE_URL>https://synthiam.com/tutorials/plugin-license.aspx</LICENSE_URL> <PLUGIN_GUID>2463b146-191a-43d0-b69b-5a7034a2aefe</PLUGIN_GUID> <CATEGORY_TYPE>Beta</CATEGORY_TYPE> <DESCRIPTION>This is just a test for now</DESCRIPTION> <VersionRelease>0</VersionRelease> </PluginV1XML>

Like I said it loads ok and shows up on ARC and I can select but nothing show as far as buttons.

I have been creating DLL of rat least 12 years now so I have done this before from scratch on my own but used in ASP.Net but not much difference.

I am using .Net 4.5 but tried 4.0 also.

PRO
Synthiam
#3  

Sorry - i'm having trouble understanding the sentences. In the first paragraph, are you mentioning that the version of ARC installed on your computer is 7 months old?

From what i can see, an instruction from the tutorial has been skipped. I would check to ensure these...

  1. Are the references added to "not copy"?

  2. Is the Output Folder specified correctly?

  3. Is the Plugin.xml configured to be copied to the output folder?

  4. Of course, are you using the latest ARC that is not 7 months old?

  5. Is the main form inheriting the correct PluginMaster class rather than Form class?

  6. Is the "Debug With External Application" set for ARC?

Also, what does "you see it in ARC but nothing show such as buttons" mean? If you could expand on that sentence, it may be useful to provide direction.

If you have additional issues, i would recommend completing each step of the tutorial as steps have been overlooked. I'm unsure what step has been overlooked due to the number of errors. Please check the list i provided, otherwise the tutorial is far more detailed than my response in the forum can be.

PRO
Synthiam
#4  

I expanded the tutorial by adding the above questions to the Trouble Shooting of the plugin tutorial, hope this helps: https://synthiam.com/Tutorials/UserTutorials/146/10

#5  

The EZ- Builder reference is 7 months old. Computer about 1.5 years.

All above is correct and checked several times. It keeps referencing an ARC not on my computer that isn't anywhere including checking registry.

I am not sure why it would even reference a version because it should be version neutral correct?

Using VS 2013.

Running other .dll I have created in past and they are ok.

Not sure what else I can do.

BTW - did the tutorial several times, erased and download newest version up to yesterday.

Thanks for the help.

PRO
Synthiam
#6  

The version that you're referring to is the Assembly Version, which is not the file version. A DLL relates to the assembly version and not the file version - which is why you're seeing two different versions of the same file.

  • If you right click on a file and select properties, you see the file version.

  • If you add a file as a library reference in a programming environment, you see the assembly version.

A DLL is called a Dynamic Link Library - and it is a "client" to a program. What you are creating when you make an ARC skill plugin is a library that ARC will load. The library (plugin) references an Assembly of EZ_Builder.exe and EZ_B.DLL. The assembly is a list of available functions, procedures, methods, variables, etc. in a table. This table is what the DLL will use to know where different elements can be found. You can find out more using Google.

In programming, when you add a reference to your project via the file system, the registry is not used. The file reference uses the file system, which is your hard drive. The hard drive stores the files in your computer, usually C:\

In the instructions, the file references to both EZ_Builder.exe and EZ_B.dll are required, which are file references. Once you add the reference to the physical file, the project will load the Assembly of those files to know where the memory addresses are for methods, variables, etc... This makes it easy so you don't have to access memory directly from the programming environment.

I know this is a lot of complicated information - but hopefully it will help. This information is actually 100% unnecessary for plugin development if the tutorial is followed. Very rarely do modern programmers need to understand how an assembly works, or what memory addresses are. The point to Visual Studio and modern programming environments is that you simply add a reference and go.

In your case, i do not believe the reference is the issue. Either the output folder is not specified correctly, the plugin.xml is not included to be copied, or the plugin.xml is incorrectly formatted.

I would recommend viewing the tutorial to see what step was missed - also the tutorial has an updated Trouble Shooting section which can be referenced. Good luck! :)

PRO
Synthiam
#7  

Ha - okay, i see the problem with your Plugin.XML. It has a few invalid characters and is not a valid XML file... For some reason, you put a bunch of semicolons in the file. If you download the XML file from the plugin screen via the tutorial would resolve this. Or simply use Visual Studio's Auto XML format feature to view the errors.

I highlighted the invalid characters from your post...

<?xml version="1.0" ?> <PluginV1XML xmlns:xsd="http://www.w3.org/2001/XMLSchema";; <-- NO xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">;; <-- NO <FRIENDLY_NAME>Test plugin</FRIENDLY_NAME> <DLL_FILENAME>MyFirstplugin.dll</DLL_FILENAME> <AUTHOR_NAME>jackphillips1953</AUTHOR_NAME> <LICENSE_URL>https://synthiam.com/tutorials/plugin-license.aspx</LICENSE_URL>;; <-- NO <PLUGIN_GUID>2463b146-191a-43d0-b69b-5a7034a2aefe</PLUGIN_GUID> <CATEGORY_TYPE>Beta</CATEGORY_TYPE> <DESCRIPTION>This is just a test for now</DESCRIPTION> <VersionRelease>0</VersionRelease> </PluginV1XML>

PRO
Synthiam
#8  

*Note: Updated tutorial trouble shooting page with a link to this thread in case others put invalid characters in the xml

enjoy your plugin creation!

#9  

Sorry checked that it must be form pasting in reply enclosed is a screenshot of the plugin and Error list.

Code Analyst is same but I can send also if you want.

#12  

Even though I select the current version in my ARC directory this is what it references to.

User-inserted image

User-inserted image

PRO
Synthiam
#13  

Please read my previous post regarding file version. What you circled and screen shot is exactly what my entire post was about, the difference between File version and Assembly version. Please read the post. If you need additional information, google will be useful - either way, the version is irrelevant. The assembly version that you posted is the correct one.

All of the information you need is presented in the tutorial - It also appears that you are attempting to "Run" the XML file. XML files are not code, you cannot run them. Please follow the tutorial for creating a plugin and you'll be ready to go!

There's dozens of users creating plugins, nearly 60 in total with no one else experiencing issues. I recommend that you strictly follow the tutorial. I have faith in you!:) Enjoy creating your plugin!

#14  

Ok was not any of the about. I had to the initialize component down.

Here is a VB.Net translation for anyone interested if not using C#

I worked and continue to work in VB.Net shops for last 15 years and the translation to C# screwed me up a little.

I hope this helps some on else

Imports System Imports System.Collections.Generic Imports System.ComponentModel Imports System.Data Imports System.Drawing Imports System.Linq Imports System.Text Imports System.Threading.Tasks Imports System.Windows.Forms

Namespace Myfirstplugin

Partial Public Class mainform

    Inherits EZ_Builder.UCForms.FormPluginMaster

    Public Overrides Function GetConfiguration() As EZ_Builder.Config.Sub.PluginV1
        Return MyBase.GetConfiguration()
    End Function

    Public Overrides Sub SetConfiguration(cf As EZ_Builder.Config.Sub.PluginV1)
        MyBase.SetConfiguration(cf)
    End Sub

    Public Overrides Sub SendCommand(windowCommand As String, ParamArray values As String())
        MyBase.SendCommand(windowCommand, values)
    End Sub

    Public Overrides Function GetSupportedControlCommands() As Object()
        Return MyBase.GetSupportedControlCommands()
    End Function

    Private Sub mainform_Load(sender As Object, e As EventArgs) Handles MyBase.Load
        InitializeComponent()
    End Sub

Thanks for the help.

#15  

I upload my plugin several weeks ago. It has been working for me ok. I does this get a public view for distribution or gets tested by you?

#16  

I believe you need to set it as public. See bottom of this page in the plugin tutorial:

https://synthiam.com/Tutorials/UserTutorials/146/9

Alan

PRO
Synthiam
#18  

If you don't want it public, and merely looking for beta testers, create a forum thread and share the link. If it's public, everyone can see it.

#19  

I published looking for feedback so I can do others' later.

PRO
Synthiam
#20  

Okay:) I'll give it a shot this week! Thanks for sharing the plugin!