Related Dependencies - Other Package Managers (post v1)
NuPack is focused on installing libraries and tools into a Visual Studio solution. It explicitly does not install anything outside of that folder such as registry settings and applications.
This feature would enable NuPack to prompt the developer to install related packages from other package management systems. In the future, we may consider supporting the following package managers
- Web Platform Installer (Web PI)
- Visual Studio Extensions Manager
Here's an example of how these related dependencies might be specified.
<dependency type="webpi" id="EfProfilerUtility" />
<dependency type="vsix" id="SparkIntellisense" />
<dependency type="coapp" id="Fiddler2" />
<dependency type="openwrap" id="Whatever" />
- User installs NuPack into the current application
- After installation, NuPack checks each of the related dependencies and calls into the appropriate API to determine whether or not the item is already installed.
- If the API is not installed, the dependency is skipped and we move to the next one.
- If an item is not yet installed, NuPack will prompt to launch the specific package manager to install the package.
- If the user responds positively, the user is taken to the respective package manager to install the item
Scenario: Related Visual Studio Extensions (Post v1)
Louis builds a NuPack package for Spark view engine. He also builds a Visual Studio Extension that provides Intellisense support for the Spark syntax.
In this case, Louis can supply an optional Visual Studio Extension dependency in his NuSpec file.
Format TBD. This is an example of what it might look like
<dependency type="vsix" id="SparkEditor" version="1.0" />
When the Spark NuPack package is installed:
- NuPack calls into the Visual Studio Extension API to see if SparkEditor is installed.
- If it's already installed, NuPack is done.
- If it's not installed, NuPack prompts the user to see if they want to install SparkEditor.
- Suppose the user checks in the code and another co-worker checks it out and loads the solution. Should we perhaps run a check then for these types of dependencies and prompt the user unobtrusively to install the VSIX?
- This isn't strictly a dependency in that you can still install the NuGet even if the VSIX is unavailable for some reason. Should we have a new section for this?