I have written an application that interfaces with QB Pro in VB6. I would now like to deploy it to the client's system. What are the DLLs and/or MSMs that I should include in the installer?
I am using the Visual Studio Installer to create the MSI.
Thank you in advance for any advice.
You don't want to install copies of the Intuit SDK DLLs. The merge modules you need are in the SDK, in path Program Files\Intuit\QBSDK\tools. In this directory you will find both stand-alone installation executables and merge modules. In the MergeModules directory, you will find merge modules for both QBFC and QBXMLRP2.
If you are using Visual Studio to create an MSI the best way to add the correct merge modules is to add the Intuit SDK MergeModules directory to the search path of your setup project. To do this, select the project in project explorer, then click the property pane or hit F4. This should bring you to the setup project properties where you should be able to see the SearchPath property.
Once you have added the MergeModules directory to SearchPath, you should see the merge modules added automatically in the Detected Dependencies folder of your setup project. You will see both the Intuit module (either QBFC or QBXMLRP2) and also the xerces parser merge module (the Xerces parser is used by the SDK).
Related
I have a project that uses VideoLAN.LibVLC.Windows nuget pkg. When I build and compile application it generates a libvlc folder.
My program builds as it should, but when I try to compile an installer using the extension Microsoft Visual Studio Installer Project it won't include the libvlc folder that is created when I build a release.
I've included the 3 options:
Content Files,
Primary Output,
Publish Items
The folder is generated at build so I cannot include it with Resources Properties.
How can I get the extension to include the folder for the installer?
EDIT:
My workaround is adding files manually to point to the release folder, is that correct or is there a better way?
Currently through Azure Devops, I'm setting up a .Net Desktop type with pipe-line that includes assembly libraries. In my understanding this should've work if the scenario was TFS is on-premise and I can just install any 3rd party non-nuget libraries in that server and make the build work. Right now I was able to make this work by literally copying the .dlls but I felt its more of a hack than actually letting the build know that I'm referencing assembly / non-nuget package libraries.
I'm pretty sure i've missed something, is there a way to properly set this up?
Even though it's not a recommend way, but you could check in these libraries/dlls in source control. TFS could download them from server to your build agent and refer them.
First, make sure your local build is successful and if just the TFS build is failing then it is usually due to dll reference path issue. Make sure that the Dll is referenced as a relative path in the project file (.csproj).
To add a relative reference in a separate directory, such as C:\tfs_get\Sources\assembly\abc.dll, do the following:
Add the reference in Visual Studio by right clicking the project in Solution Explorer and selecting Add Reference.
Find the *.csproj where this reference exist and open it in a text editor. Lets say your .csproj location is c:\tfs_get\sources\myfolder\myproject\myproj.csproj
Edit the < HintPath > to be equal to
..\\..\assembly\abc.dll
This build will work properly with the assumption that the folders ( assembly, myfolder) under the sources folder exist in TFS.
Update
Have a folder named "libs", or "libraries", for example, that contains all the assemblies required by your projects to compile and run.
Reference these assembly by right click the reference folder of project and browser to these assemblies files.
For build, in Source Settings (XAML, Build Agent Folder)/Repository, keep the similar structure.
More details please take a look at this similar question : How to properly check in DLLs/assemblies to TFS/Visual Studio Team Services (was VSO)
Is it possible to get pug in project for Outlook that is depend on NuGet packages to be installed with Microsoft Visual Studio 2017 Installer Projects? I’m trying to create an installation file for a plug in for Outlook that have a drag and drop functionality dependent on the Easyhook Nuget package. That the plugin have a taskPane with a webbrowser there are drop Outlook e-mail messages as .msg files.
It works to install the plug in but the drag and drop functionality that is dependent on the NuGet package doesn’t work. That I can drop the message but the webpage doesn’t recognize the drop mails as .msg files or even as uploadable files. While if I try with the trial version of InstallShield 2018 Express Edition everything works including the drag and drop functionality.
I tried to do the same thing with Installer Project as with InstallShield. To output I added content files, debug symbols and primary output. Files I added was the manifest and vsto files for the Plugin and the .dll file for the NuGet Package, Easyhook32.dll. I got an error because the content file included the 64bit for the NuGet Package files, and I’m doing a 32bit installation, and also that the Easyhook32.dll file was duplicate, that it seems that the dll file also was added with the content files.
So, I excluded the 64bit files in the plug In project that should be installed and in the installation project I removed Easyhook32.dll files from the files that should be include in the installation. Also then it worked to install the plugin but the drag and drop functionality didn’t work. I also tried to for example not add the content files and just add the Easyhook32.dll and that also made the installation work except the drag and drop functionality.
I can of course also try other installation programs that is able to add NuGet but also are able to be installed from the Internet and also add registry keys and values. That I also have tried Microsoft Click Once installations program and it was easy to create an installation files but it seems like you need a valid certification if you want users to download the installation file from the Internet.
Also, this is the first time I working with type of installation like this ones and with Outlook Add In so I can have missed some obvious solutions. That at the same time english is not my first language so I can also have missed using the correct terminology.
NuGet is a build-time package manager. You'll need to redistribute any required binaries in your installer package by adding them manually. Typically, required binaries from NuGet packages will be copied to your output folder, so you could add them from those paths just like your project output.
How can I manually add the SQLite Entity Framework 4.0 provider without using the installer setup so that the Visual Studio New EDMX wizard will be able to use it to create a new data model?
I'm not sure which provider you are using, but I am asuming you are using the System.Data.SQLite provider available from http://system.data.sqlite.org/
In order to use the Design Time support in Visual Studio, you must download the installer and install everything. This will setup the Design Time support and also install the System.Data.SQLite and System.Data.SQLite.Linq assemblies into your development machine's Global Assembly Cache.
For your application to access the SQLite database, you will need to add a reference to those two assemblies to your project.
To do this, right click on the project and select "Add Reference". If you ran the installer, the two assemblies will be in the list. If you can't find them, download the assembly files from the website, put them anywhere on your drive and reference them by selecting the file.
To distribute your application, you simply need to send along the assembly files. The easiest way to do this is to put the two dll files in the installation folder.
You can do this by right clicking on the reference in the visual studio Solution Explorer, and selecting Properties. Here, set Copy Local to True. Now when your application compiles, a copy of the SQlite assemblies will be put in your target directory.
If you are deploying the files manually, simply copy along the assembly files and keep them in the same folder as your executable. If you are using One-Click Deployment or any other kind of Deployment, make sure the assemblies are deployed together with your application.
Note that, as far as I know, the assembly version used by the Design Time support must be the same version as the one deployed by your application. So if you update the one, make sure you update the other as well.
I checked in a project to SVN with about 15 references from one dev box then checked out the same project on a second dev box but most of the reference files are missing. Is it possible to checkin the reference files automatically?
Version control will only keep track of the actual files underneath the working folder. If the third party libraries are installed elsewhere on the machine, they will not be included in the source control at all.
You'll have to do one of these:
Ensure that the 3rd party libraries (eg, nunit, enterprise libraries) are installed on all required development machines.
Don't install the libraries using the normal installers at all, instead, add the individual dll's and other resources to source control as Vendor Branches, then bring them under your project by either branching them into your project location, or by adding an svn:externals definition.
Copy the required reference files under into your source locations, add them to source control and reference them from there.
I think it's hard for Visual Studio SCC tools to determine wether or not these files should be automatically added. If you're using the first scenario Jim T described, you definitely don't want that to happen.