This week an ISV logged a support incident to determine why their Visual Studio Tools for Microsoft Dynamics GP (VSTools) form wouldn't open. The customization worked fine on the developer's machine (of course) but didn't work when deploying it to the customer site.
The ISV was using the Menus for Visual Studio Tools for Microsoft Dynamics GP application to display a menu for their .NET VSTools form. The menu displayed correctly but when the item was selected, the window didn't open. No error messages, just nothing. I received the assembly from the ISV and found I could repro the issue here as well.
I had an idea of the issue but the first step is to run a Script.log to determine if anything is going wrong on the Dexterity side of the Menus for Visual Studio Tools application.
The Script.log is above from my own test is above. I added the line numbers for clarification.
Looking at the Script.log, I could tell that everything seemed to be working correctly. The only that that we don't know and cannot tell is what the Tag for this command is. So there is a possibility there is an issue with returning the correct tag. However this is a GP menu and there are no known issues with commands in the core dictionary.
What is the code above doing and why do I suspect that all is OK?
The explanation for the Script.log lines are below.
From here, there are 2 reasons I can think of that would cause your .NET form to not open.
I'm going with #2 on this one, but how to prove it?
Two ways that I can think of.
Code ISV had to open the form
DynamicsGPForm1 f = new DynamicsGPForm1();f.Show();
Because I was sure that the form was throwing an unhandled exception which was caught silently by Dexterity, the solution is to catch and show the exception in the ISV application.
Suggested Code Change
try{ DynamicsGPForm1 f = new DynamicsGPForm1(); f.Show();}catch (Exception fException){ MessageBox.Show(fException.Message);}
After making the change and deploying the new code, we hit pay dirt. An exception was caught - the error was:
Can't load fileCould not load file or assembly 'Microsoft.VisualBasic.Powerpacks.Vs, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f57f11d50a3a' of one of its dependencies. The system cannot find the file specified.
Now we're getting somewhere. We just need to install this assembly on the client machine and we should be good.
The name didn't seem familiar to me and so I did a search for the assembly. I learned a few things in my search:
After installing both the 2.0 and 3.0 versions on my machine, I found I still couldn't access the form. Why not?
Well, apparently there was a "name change" in the dll. In the public downloadable version, the name of the assembly is Microsoft.VisualBasic.Powerpacks.dll. Note that there is no "Vs" at the end as hers was using.
From a bit more research, I found that is the version that is included with VS 2008 SP1 and you cannot download it "standalone". The only way to get the "Vs" version installed to the client is to make an installer package that invokes the bootstrapper assembly for the package.
This form post talks about it. I'm sure you can find more information if you search.
Because the ISV really wanted to use this component, the only solutions would be to:
RegardsPatrick
// Copyright © Microsoft Corporation. All Rights Reserved.
// This code released under the terms of the
// Microsoft Public License (MS-PL, http://opensource.org/licenses/ms-pl.html.)
Comment from DynamicAccounting.net
http://msdynamicsgp.blogspot.com/2010/04/microsoft-visual-studio-tools-window.html
Patrick,
I am getting exact same error message when I tried to open Dynamics GP window from C# application. I installed 3.0 Visual Basic Powerpack but didn't help me don't know what I am missing. Below is my code.
In reference included : Application.Dynamics
Application.MenusForVisualStudioTools
Microsoft.Dexterity.Bridge
Microsoft.Dynamics.Common
********************************************
using Microsoft.Dexterity.Bridge;
using Microsoft.Dexterity.Applications;
using Microsoft.Dexterity.Applications.DynamicsDictionary;
private void btnOpenCustMstr_Click(object sender, EventArgs e)
{
Dynamics.Forms.RmCustomerMaintenance.Open();
}
**************************************************
Error :
Could not load file or assembly 'Application.Dynamics, Version=11.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' or one of its dependencies. The system cannot find the file specified
Please help me to resolve issue.
Thanks
Sandip
Sandip,
For technical questions on your issues, please open a new support incident for Visual Studio Tools for Dynamics. Or you can log a question on the partner forums if a partner or the public newsgroups if not.
patrick
PLEASE READ BEFORE POSTING
Please only post comments relating to the topic of this page.
If you wish to ask a technical question, please use the links in the links section (scroll down, on right hand side) to ask on the Newsgroups or Forums. If you ask on the Newsgroups or Forums, others in the community can respond and the answers are available for everyone in the future.