packaging 3rd party dll into wsp - c#

I have several 3rd party dll's for .net. I have the following requirements:
- They must each be in their own sharepoint 2010 wsp
- They must be deployed the bin, not the GAC
I'm having troubles accomplishing this. What steps need to be taken to do this?
I've tried creating a new sharepoint application, mapping bin, placing dll there then deploying.
I've tried creating new sharepoint application, adding the dll as a reference, selecting web application instead of global assembly cache and deploying.
Neither method has worked when I tried to use another webpart that required those dll's.
Edit - This page is an excellent example of what I need to do with 3rd party dll's but it doesn't have the details on how to do it. http://ranaictiu-technicalblog.blogspot.sg/2012/06/sharepoint-package-your-external.html
Appreciate any help.

Oké, getting your solution to deploy a DLL to the bin folder you need to change the deployment target from GAC to WebApplication. When the project is deployed the project assembly will be deployed to the bin folder of the project the DLLL will be located at C:\inetpub\wwwroot\wss\VirtualDirectories[SiteName]\bin
For the second question I don't know what you are trying to accomplish. Maybe you can give some more context.

Related

Creating Exe/MSI for C# Windows Forms using Visual Studio 2017 Setup Project

I'm trying to create exe/msi for my solution
it contains the following Projects
ActiveDirectoryEngine: library used to implement AD operations
ADService: windows service - performs the work in the background
CryptographyEngine: library used to encrypt/decrypt data
TerranovaActiveDirectoryHost: Dashboars/win form to manage/check the service's status
SyncToolSetup: the setup project "it only targets TerranovaActiveDirectoryHost"
Here is the contents of the Setup project:
I tried the same steps for different Solution, with ONLY one windows forms application, and it worked fine, but it looks that it doesn't work when I have more than one referenced projects.
The install and Uninstall options are not enabled
Update:
all the previous projects are referenced in the Win forms project, so am I targeting the right one when creating the exe/msi?
The only project with the Install option is the setup project. Other projects in the solution do not have install option just because there is a setup project as part of the solution.
References in a non-setup project (such as a C# build) are not automatically included in a setup project. References used to build code are not necessarily things that need installing on the target system. The setup will try to help with dependencies, but it's unreliable, and only a guide. For example, your Application Folder view contains some files that are part of the .NET Framework, and you definitely don't install them because they are installed as part of the standard .NET framework install.
The setup project must be told what needs to be installed on the target system. There are generally two ways of doing this:
Selecting project output as input to the setup project. This can be rather indeterminate because it's not always obvious what files are included, or what to do if the files need installing to different locations.
Add the files that you know you need one at a time by adding them in the File System view of the directory they need installing into. Typically, executables go into the Application Folder (defaults to Program Files..), data files to User's Application Data, shared files to Common Files folder, some assemblies to the GAC and so on.

Preparing for deploying a console application (assembly fundamentals)

(new to .NET) I've built a small console application that uses a 3rd party data access component for Oracle (assemblies: devart.data.dll and devart.data.oracle.dll). I've been asked to gather environmental requirements for a new test server. On my local machine, I am able to simply copy the bin/debug or bin/release folder and my app just works. However, I doubt this will be the case on a new system. Obviously, I know I'll need the .NET 4.5 framework. But for this other dependency, I don't see these dlls in my folder. I'm not even sure how these were installed (I inherited this computer from a now-gone developer).
How do installations of 3rd party tools typically work with respect to deployments? How will I be able to say what's required and how to get it on the target machine? Any advice is much appreciated!
Have you checked your project references to see if the dlls are referenced in the project. If they are, you should be able to see the path they are located in. I'm guessing the dlls are on your network drive somewhere and your project is pointing to them.
You should be able to check all your references by right clicking on your project and selecting the "add reference" item on the menu. If the ddls are on your network drive, as long as the testing server has access to the file directory, you shouldn't need to worry about deploying the dlls.

InstallShield and DllImport management

In my VS2012 project I use a third party dll. I do not add it into project references, but I have added its path into environment system variables (in Path), as suggested into the user manual of the third party software.
So inside my project I don't have any references to that dll, but only a .cs file where there are some [DllImport("xxx.dll")].
In the same solution, I've created an InstallShield project, to create a setup for my application. When I run the setup, I notice that the dll is copied into my application folder. That is not good for me, because if I try to run my application I have some compatibility problem with other dlls of the third party software.
If I remove manually the xxx.dll from my application folder, it works correctly.
So, how can I avoid that xxx.dll is copied inside the application folder?
Turn off any of the "magic" options so that you can control exactly what files you install. For example, set.NET Scan at Build to Properties instead of Dependencies and Properties.

Could not load file or assembly 'EfTidyNet' or one of its dependencies

I am trying to host an application on IIS 7.0, this application is using a third party dll
EFTidynet.dll for removing unwanted html code in the application. when i am running this application using Visual Studio 2010, its working fine, but when i hosted this application on IIS 7.0 its giving the error of
Could not load file or assembly 'EfTidyNet' or one of its dependencies.
I have already added the name in the assemblies section on web.config but still no success.
Can anybody help me out.
EfTidyNet (on codeproject.com) seems to contain only one DLL. The directions say that it needs to be registered in the GAC.
I usually create a folder in my c:\inetpub\ folder named "Bin" or "DLL" or "GAC". It makes it much easier to find registered files (that I'm using for IIS). Microsoft has plenty of good instructions on GACing a file. http://msdn.microsoft.com/en-us/library/dkkx7f79(v=vs.110).aspx
On my development machine, I was having the same error message, followed by:
An attempt was made to load a program with an incorrect format.
Apparently, EfTidyNet is a 32-bit DLL, which didn't work too well on my 64-bit version of Windows 8.
The error disappeared after I enabled 32-bit applications in the advanced settings of the application pool of the web site, as explained here:
Could not load file or assembly exception

Deploy a program that includes Microsoft.Smartdevice.Connectivity assembly

I am using Microsoft.Smartdevice.Connectivity assembly as a part of a larger application. Now I have to deploy that application and I can't find any info in regarding to deploying such applications. Even on the msdn resource page there is a question regarding this issue, with no replys.
So how can I deploy such an application. Is there a list of assemblys I have to deploy or something?
I have included the Misrosoft.Smartdevice.Connectivity.dll however the application is still missing at least one file: "Microsoft.VisualStudio.Connectivity.Interop.dll" I can't find that file anywhere. How can I deploy this application on a machine without visual studio installed.
How can I deploy the application on a computer without visual studio? Is there a SmartDevice Connectivity API redistributable or something?
Thank you for your help.
There is a tool called IsoStoreSpy.application. You can use it to deploy applications.
Good luck
This is a very old question but these libraries are in the NuGet package managerment framework which should allow you to include references. Set the project's build to copy all package-managed DLLs into the output directory of your executable.
http://www.nuget.org/packages/Smartdevice.Connectivity/

Categories