11-22-2016 01:26 PM
OK - I'm somewhat of a newbie, and I have developed a stand-alone program that uses the Framework to connect to the ACT! database. All is well and good, and the program runs great on my development computer and my laptop.
I'm using Visual Studio, and plan on supporting ACT! 2013 (vb.NET 4.0) and higher versions of ACT! I understand that I need to compile with the lowest version of ACT! that I plan to support.
However, I'm having a challenge figuring out how to deploy my program. If someone could help me with a few questions, I would be grateful!
1. I know that vb.NET 4.0 will be installed on the user's computer. Can I simply copy my compiled .exe files to their computer and run them? Or, do I need to use an Installer program? If so, what do you recommend? Do I need to Publish the app?
2. Exactly which compiled files do I need to include with my application? Do I need to include a .manifest file? A .cfg file? A .resources file? Any other files?
3. What is the best way to include .ico, .jpg and .png files with the application? It looks like I have to identify them as Content, and copy them to the installation folder - correct? Or, do I need to include them in a .resources file?
4. How do you recommend handling different user screen sizes and resolutions, so that my program scales properly?
5. My program uses several independent .dll files - one of which is SQLite. Do I need to register those files?
6. Any other helpful advice and comments to a developer that is new yet determined to succeed?
Thanks for your help!
11-23-2016 02:27 PM
1. If everything is installed, you should just need to copy the files (.exe, .dll, etc.) to the computer
2. The short answer is, whichever ones are needed for it to run. These are mainly the executable and any libraries (dll's). You'll also need any supporting files like images.
3. This depends on if you want to embed them into the executable, which I think the resources setup will do (not sure though). You could also use a relative path and have an "Images" folder at the same level as the executable, then just copy the folder along with the executable. This way, if an image changes, you just need to swap out that one file, no need to recompile.
4. That's up to you. It's not until .NET 4.5 and newer that MS put more focus into UI scaling. Overall, WPF should do better than Windows Forms for that, but there is a learning curve. I'll also say that Act! 2013 scales pretty poorly on high DPI screens.
5. If the dll files are compiled to .NET, you shouldn't have to. If not, maybe.
6. Be prepared for failure and/or things breaking. It's going to happen, so you'll just need to work through it and learn from the issue. That way you can do better the next time.
Hope this helps and good luck!
11-25-2016 07:46 AM
Thank You for your response! Very helpful.
1. Do required files include .Resource, .Manifest, .config and/or .Application files?
2. What is the best way to include Image files? Embedded Resource, Content, other way? It looks like I can embed them in the .EXE file. Seems like that would be the best way to go, but not clear on this.
3. As to the screen scaling question: I'm just looking at the .NET windows, not ACT! windows. It seems like the best method to accomplish scaling is not clear. Maybe just read the current screen resolution and set the Form size accordingly?
I really appreciate your help. It's that last 5% of the Development process that seems to take the most time...
11-28-2016 05:45 AM
1. Just .exe and .dll files. The ones you mention generally aren't needed unless there is a specific need. It's been a while, but I believe .application files are used for ClickOnce deployments.
2. I, personally, would probably keep them separate, especially if there is possibility of changing later on. That way you don't have to recompile and deploy just for an image change. You just have to supply the new image(s).
3. I was using ACT! as an example. That is a Windows.Forms application for the most part, and it scales poorly. Basically, scaling is a pain. I'd check to see what your min and max resolutions are that you have to deal with. If they are all fairly standard (read: Widescreen monitors with 1080 vertical resolution or around that), make it fit the smallest one and don't bother with the scaling. If there is extra, unused space on the form, is that a bad thing?
08-28-2017 09:20 AM
I'm using visual studio 2015 and C#. I develop the application, test it to death and everything is fine. I tried copying the exe to another computer (actually a virtual machine) w/ Windows 10, Office 2013 and Act! 19.2 Premium installed; just like my development machine. When I execute the on the new machine, it errors out with something about not having the correct libraries.
Then I go back to Visual Studio and deploy it. This gives me a folder of things including a setup file, autorun.inf, an application file and a folder called Application Files with a lot dll files.
I transfer the deployment folder to another computer and run the setup file and get this error saying it requires an assembly called Microsoft.Vbe.Interop Version 10.0.4504.0 be installed in the Global Assembly Cache first.
I do not understand what's going on. I don't even know what questions to ask. Surely i'm doing something stupid.
08-28-2017 12:09 PM
08-29-2017 07:40 AM - edited 08-29-2017 08:26 AM
I found the same thing.
I installed Office 2013 on the target machine with all the features and the VBA component is installed. I found this in the event log:
Log Name: Application
Date: 8/29/2017 8:05:48 AM
Event ID: 33
Task Category: None
Activation context generation failed for "C:\Users\kevin\AppData\Local\Temp\Deployment\X6O40EYV.EDW\DBK71NZJ.CV7\TLE2QZRP.R74\DKRTBGLB.6EN.manifest".
Dependent Assembly Microsoft.Vbe.Interop,publicKeyToken="31BF3856AD364E35",version="10.0.4504.0" could not be found. Please use sxstrace.exe for detailed diagnosis.
I bolded parts of this message. The deployment I put together does include a manifest file.
I'm kinda lost here. This shouldn't be this hard. It seems like I'm missing something simple. It almost seems like something is not registered, but I would think the install process would register what it would need.
08-29-2017 08:09 AM
The vbe.interops exist in different versions. Due to some problems we had in the field, we found that ACT! is sometimes looking for an older interop (v10) and installed them additionally into the GAC with gacutil.exe and the problems went away.
Just an educated guess....
08-29-2017 12:58 PM
Using GACUTIL, I found that the GAC has interop version 14 and 15. There's a way to include version 10.xxx, but I can't figure it out.
gacutil /i Microsoft.vbe.interop,version=10.0.4504.0
gacutil /i Microsoft.vbe.interop, version=10.0.4504.0
it doesn't like either one; says file doesn't exist or it doesn't like the "version=..." part of it.
08-30-2017 12:26 AM
Have a look at our Forum.
You'll find the file to download an the command syntax towards the end of the article(sorry, German, try Google translate). The purpose of the article is a completely different one, just skip the beginning.