Search code examples
c#visual-studiovisual-studio-extensionsvsix

VSIX extension - Change Path of DLL


I've created a Visual Studio Extension (VSIX) with Visual Studio 2013. In this extension I have a reference to another class library (DLL) which I created.

This DLL will be placed in the extension Folder correctly after installing the extension Extension Folder is C:\Users\username\AppData\Local\Microsoft\VisualStudio\12.0\Extensions\1oqfh4o4.2y5\

But I need this dll also in the installing directory of the Visual Studio -> C:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\IDE

If I do not copy the dll into the Visual Studio folder I get an exception that the extension cannot find the dll.

Is it possible to change the path of the dll to the extension folder? Is it possible to include the dll directly to the VSIX?

I tried it with the "Assets" in the "source.extension.vsixmanifest" but it's still not working.

I also have the same problem with an external library "System.Windows.Interactivity.dll"

Thanks, Phil


Solution

  • Is it possible to include the dll directly to the VSIX?

    Yes, but you should make sure that the dll is redistributable.

    • Add the dll to your extension project as file instead of reference(Add->Existing Item).
    • Set its property "Build action" to Content on the Properties window.
    • Set its property "Include in VSIX" to True on the Properties window.

    Then build the extension project, you can check the dll file in the .vsix file (Rename the .vsix file to .vsix.zip file and open it to check).