MscrmTools / XrmToolBox

An application that gather multiple tools to ease the customization and configuration of Microsoft Dynamics CRM/365/Dataverse/PowerApps
https://www.xrmtoolbox.com
GNU General Public License v3.0
571 stars 214 forks source link

Plugin Registration Plugin fails with XrmToolBox v1.2016.02.28 #350

Closed mscottsewell closed 8 years ago

mscottsewell commented 8 years ago

The Plugin Registration Plugin (https://github.com/in-team/PluginRegistration) now fails due to missing version of the McTools.McTools.Xrm.Connection - (This seems to be the same thing that broke the FXB plugin with this release of the toolbox.)

I'll report the same on their repository, but if you have a way of allowing older versions (where possible) - that would be helpful. ( https://github.com/in-team/PluginRegistration/issues/3 )

\ Exception Text ** System.IO.FileNotFoundException: Could not load file or assembly 'McTools.Xrm.Connection, Version=1.0.3315.606, Culture=neutral, PublicKeyToken=null' or one of its dependencies. The system cannot find the file specified. File name: 'McTools.Xrm.Connection, Version=1.0.3315.606, Culture=neutral, PublicKeyToken=null' at PluginRegistrationTool.MainControl.b__0(DoWorkEventArgs a) at System.ComponentModel.BackgroundWorker.OnDoWork(DoWorkEventArgs e) at System.ComponentModel.BackgroundWorker.WorkerThreadStart(Object argument)

MscrmTools commented 8 years ago

Can you try to include this XML part in the configuration file (under the dependencies to CRM SDK assemblies)

 <dependentAssembly>
        <assemblyIdentity name="McTools.Xrm.Connection" culture="neutral" publicKeyToken="96037217801d9658" />
         <bindingRedirect oldVersion="1.0.0.0-2.0.0.0" newVersion="1.2016.2.28" />
      </dependentAssembly>

If it still does not work, can you try to remove the publicKeyToken attribute?

mscottsewell commented 8 years ago

I added that but get the same error: (with or without the publicKeyToken)

System.IO.FileNotFoundException: Could not load file or assembly 'McTools.Xrm.Connection, Version=1.0.3315.606, Culture=neutral, PublicKeyToken=null' or one of its dependencies. The system cannot find the file specified.

File name: 'McTools.Xrm.Connection, Version=1.0.3315.606, Culture=neutral, PublicKeyToken=null' at PluginRegistrationTool.MainControl.b__0(DoWorkEventArgs a) at System.ComponentModel.BackgroundWorker.OnDoWork(DoWorkEventArgs e) at System.ComponentModel.BackgroundWorker.WorkerThreadStart(Object argument)

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <runtime>
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
      <dependentAssembly>
        <assemblyIdentity name="Microsoft.Xrm.Sdk" publicKeyToken="31bf3856ad364e35" culture="neutral" />
        <bindingRedirect oldVersion="0.0.0.0-8.0.0.0" newVersion="8.0.0.0" />
      </dependentAssembly>
      <dependentAssembly>
        <assemblyIdentity name="Microsoft.Xrm.Deployment" publicKeyToken="31bf3856ad364e35" culture="neutral" />
        <bindingRedirect oldVersion="0.0.0.0-8.0.0.0" newVersion="8.0.0.0" />
      </dependentAssembly>
      <dependentAssembly>
        <assemblyIdentity name="Microsoft.Crm.Sdk.Proxy" publicKeyToken="31bf3856ad364e35" culture="neutral" />
        <bindingRedirect oldVersion="0.0.0.0-8.0.0.0" newVersion="8.0.0.0" />
      </dependentAssembly>
      <dependentAssembly>
        <assemblyIdentity name="Microsoft.IdentityModel.Clients.ActiveDirectory" publicKeyToken="31bf3856ad364e35" culture="neutral" />
        <bindingRedirect oldVersion="0.0.0.0-2.23.0.0" newVersion="2.23.0.0" />
      </dependentAssembly>
      <dependentAssembly>
        <assemblyIdentity name="Microsoft.IdentityModel.Clients.ActiveDirectory.WindowsForms" publicKeyToken="31bf3856ad364e35" culture="neutral" />
        <bindingRedirect oldVersion="0.0.0.0-2.23.0.0" newVersion="2.23.0.0" />
      </dependentAssembly>
       <dependentAssembly>
        <assemblyIdentity name="McTools.Xrm.Connection" culture="neutral"  />
         <bindingRedirect oldVersion="1.0.0.0-2.0.0.0" newVersion="1.2016.2.28" />
      </dependentAssembly>
    </assemblyBinding>
  </runtime>
  <startup>
    <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5.2" />
  </startup>
  <system.net>
    <defaultProxy enabled="true" useDefaultCredentials="true">
      <proxy autoDetect="True" bypassonlocal="False" />
    </defaultProxy>
  </system.net>
</configuration>```
MscrmTools commented 8 years ago

I succeeded to make it work with following assemblyBinding


        <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
            <dependentAssembly>
                <assemblyIdentity name="Microsoft.Xrm.Sdk" publicKeyToken="31bf3856ad364e35" culture="neutral"/>
                <bindingRedirect oldVersion="0.0.0.0-8.0.0.0" newVersion="8.0.0.0"/>
            </dependentAssembly>
            <dependentAssembly>
                <assemblyIdentity name="Microsoft.Xrm.Deployment" publicKeyToken="31bf3856ad364e35" culture="neutral"/>
                <bindingRedirect oldVersion="0.0.0.0-8.0.0.0" newVersion="8.0.0.0"/>
            </dependentAssembly>
            <dependentAssembly>
                <assemblyIdentity name="Microsoft.Crm.Sdk.Proxy" publicKeyToken="31bf3856ad364e35" culture="neutral"/>
                <bindingRedirect oldVersion="0.0.0.0-8.0.0.0" newVersion="8.0.0.0"/>
            </dependentAssembly>
            <dependentAssembly>
                <assemblyIdentity name="McTools.Xrm.Connection" culture="neutral"/>
                <bindingRedirect oldVersion="1.0.0.0-2.0.0.0" newVersion="1.2016.0.0"/>
            </dependentAssembly>
            <dependentAssembly>
                <publisherPolicy apply="no"/>
                <assemblyIdentity name="Microsoft.IdentityModel.Clients.ActiveDirectory" culture="neutral" publicKeyToken="31bf3856ad364e35"/>
                <bindingRedirect oldVersion="2.18.0.0" newVersion="2.23.0.0"/>
            </dependentAssembly>
        </assemblyBinding>

I still have a conflict with some tools from Daryl but already had it... So if you failed to connect to an organization, remove Daryl's plugins before running XrmToolBox

mscottsewell commented 8 years ago

I have no trouble starting the toolbox in general - it's just that when I attempt to start the pluginregistration plugin, it fails. - (still with the same error - even with your assemblybinding above.)

This was a clean install with the FXB added - then added the plugin registration plugin - but nothing else.

I can go back to using the version from the SDK - but this version was nice since it uses your connection string manager.

MscrmTools commented 8 years ago

I guess the main problem comes from the fact I signed the latest connection assemblies... It will require the developer to update his code

mscottsewell commented 8 years ago

OK - It appears that the plugin project (https://github.com/in-team/PluginRegistration) hasn't been updated in a while - so I'm assuming they won't be updating it anytime soon - pity. -Oh well. Thanks for your help though!

MscrmTools commented 8 years ago

Someone (me if I find time) could fork the project, make the required update and provide a new assembly

daryllabar commented 8 years ago

@MscrmTools what is the conflict my tools are creating?

MscrmTools commented 8 years ago

When two plugins embed stringed type entities, XTB does not know which one to use and crashes

The class that causes the error is the class PluginAssembly

shytikov commented 8 years ago

I like idea of Plugin Registration plugin inside XTB and willing officially commit myself to support it in the future for the sake of community (sorry for being too official).

But anyway, I mean it.

@mscottsewell I will make it work. You have my word.

@daryllabar I will try hard to make it not conflicting with your tools too. Promise.

@MscrmTools if you think it could be part of the standard XTB plugins package (as soon as it will become working) I would gladly will continue keeping this plugin up-to date and respond on any issues happening with it in the future.

daryllabar commented 8 years ago

I believe the conflict comes from not specifying the assembly for the organization service. See tip 1 https://msdn.microsoft.com/en-us/library/gg328210.aspx

We'll probably need a way to specify this via the Plugin interface...

macacq commented 8 years ago

Hi guys,

Help with PluginRegistration would be much appreciated. I was not aware it get some attention from community, I glad it become useful for someone else too.

I will try to catch up this XTB changes, and again would appreciate your PR, if any.

macacq commented 8 years ago

Sorry @shytikov, fixes are already checked-in.

@mscottsewell can you check newest build?

mscottsewell commented 8 years ago

Yes - the newest build works great - I was able to test it this afternoon. Thanks!

MscrmTools commented 8 years ago

Closing this issue