Visual Studio extension enables you to share and manage your binary dependencies. This extension provides a way to publish your binaries in a repository in order to share them among your team. With the designer, you can easily view all the solution's dependencies.
Visual Studio 2008
Binary dependencies problematic
Managing the binary dependencies is a feature which is not integrated in Visual Studio. However, it's a real problem when doing team development.
The first problematic is to share binaries between projects. One solution is to create a shared folder and drop binaries into it, this binaries can then be referenced in your project. But this doesn't help as far as the following are concerned : versioning,
notifications, updates from external teams and so on.
Another limitation is the impossibility, within Visual Studio, to create and manage contextual references. For example, if I am in a Test configuration, I want to use a mock objects library instead of the final implementation.
Finally, with some IOC frameworks like MEF, SpringFramework or Unity, how one can create a runtime reference ? (Typically when the application has no static project reference to a library but this library must be accessible by the application at runtime) ?
These are the goals of the Visual Studio Dependencies Manager.
Visual Studio Dependencies Manager features
- Dependencies designer showing dependencies between all the projects in the current solution and other external libraries (based on the DSL Tools)
- Contextual references based on the solution configuration name and an usage (Compilation, Runtime, Publication)
- Generation of the InternalsVisibleTo attribute generation
- Binaries can be published in a repository as a unique compressed package (Open Packaging Convention (OPC) compliant file).
- Repository can manage multiple versions of the same package
- A package can contain visual studio outputs (exe, dll, config files...) or static libraries (assemblies from external frameworks)
- Click once manifest file is updated according to runtime dependencies.
- Repository can be accessed over http or file access.
- Binaries referenced in a model are automatically downloaded from the repository into a local folder.
- MSBuild tasks to retrieve binaries from the repository and to publish a compilation output