![]() When creating a plugin dll, those plugins neccessarily need to add references to components from the base application (interfaces, utility libraries, contracts and such). Our application supports plugins - we have a "Plugins" folder where we drop dll's in, and they're all loaded using the Managed Extensibility Framework (MEF). We have a base application, which includes references to various Nuget packages. We have this scenario as well, I'll explain ours: There is no need for every VS extension to package all of the VS Contracts assemblies in their VSIXs, since VS already has them installed and loaded. Since VS is starting to ship all of its Contracts assemblies as NuGet packages:, this same scenario can be applied to any VS extension. Thus, by default we want CopyLocal to be set to ‘false’, so that this Contracts assembly isn’t included in all these extensions’ VSIXs. ![]() The Contracts assembly will already be installed and loaded in VS. ![]() Since our Contracts assembly ships as part of VS, there is no need for a bunch of different VS extensions to package and install multiple copies of this Contracts assembly in each of their VSIXs. Using the VSIX packaging technology, whenever you have a CopyLocal=true reference, that reference will automatically be included in the output VSIX. We will ship this Contracts assembly as a NuGet package. In order for VS extensions to consume our APIs, we need to ship them a “Contracts” assembly that they will reference. At the time, I was building a VS extension point.
0 Comments
Leave a Reply. |