Parameters and features.
Out-of-solution projects that are linked to projects in the solution are monitored for modifications. When a modification is detected, the necessary projects are updated to reflect the changes. This allows you to have multiple solutions opened in different Visual Studio instances without the need to manually synchronize anything.
You can exclude files and folders from synchronization by defining exclusion rules. This is done through a user-friendly UI. You can use regular expressions to better define excluded items.
You can create global exclusion rules that are active for all project links. This way you can define commonly used exclusion patterns in one place without the need to redefine them for every project link. To make things even more flexible, each project link has the option to not use the global rules.
When Visual Studio SourceShare is first started, hotkeys are created for the most used commands.
- Ctrl + Numpad * - resynchronize the current project
- Ctrl + Shift + Numpad * - resynchronize the solution
- Ctrl + Numpad / - temporary disable automatic synchronization for current project
- Ctrl + Shift + Numpad / - temporary disable automatic synchronization for the solution
You can choose to link only files from a sub folder of a project, not the whole project. It is also possible to link files to a sub folder of a project, not the root folder.
By default, when you change (add, delete, rename) files or folders somewhere in your solution, all projects in the solution that link to those files/folders are updated accordingly. For most cases this is great, but for very big projects it might be slow. Therefore you can set a project link to only be synchronized manually (by a click on a context menu or by a hotkey).
The standard type of synchronization duplicates the structure of the source project in the target project. This is done by creating all the source folders in the target project and adding all the source files as links. However, if you add a file to the target project, nothing is done with it. With the Two-way synchronization, files from the target project are added as links in the source project.
You can link to projects that are not included in the current solution. This will not prevent the links from synchronizing. Synchronization will be done transparently in the background.
Visual Studio SourceShare sometimes needs to ask you some things in order to proceed its work. Depending on your needs, you can set default responses for most of the input dialogs so that your work process is smoother.
This type of synchronization is also known as “Move to source, then link”. When you use it, if you create a file in the target project, it is automatically moved to the source project and linked in the target project. Basically, you get the same result as if you added the file to the source project, but without having to open it. This feature allows you to work with your projects as if you only use one project and at the same time benefit from multi-targeting.
Visual Studio SourceShare is designed to work for both single developers and in a team environment. All paths are stored in a relative form and all settings are stored in the project files. You should have no problems using a source control system or other team utilities without the need of special handling due to SourceShare.
Global settings are stored using the standard Visual Studio mechanism so they could be exported, if necessary.
Without Visual Studio SourceShare it is a real pain to rename a linked file. You must delete the link, open the source project, rename the file, and add link to the renamed file in the target project. With SourceShare you get a rename experience similar to renaming a normal file.
Visual Studio SourceShare can log its actions. This is useful when you encounter an error or you just want to get an internal look on how SourceShare synchronizes your projects.
When you copy a file and then paste it in the same folder, Visual Studio creates a duplicate of it with a different name. With linked files this is not possible – you must open the source project, copy the source file, and then add link to the newly created file. This is slow and inefficient. With SourceShare there is a “Duplicate” button on the context menu.
You can easily move a file between the source and the target project just by clicking on the provided context-menu button. This automatically moves the file to the source/target project and, if necessary, creates a link to it in the other project. It also creates the necessary exclusion rules so that this file is not synchronized anymore.
Sometimes, when synchronizing, Visual Studio SourceShare makes changes to your projects. It can add or remove files, create links and so on. To preserve those changes the affected projects need to be saved. This sounds good, but what happens when those projects has unsaved changes – after all, you are working on them? The options here are very convenient. You can set SourceShare to always save the project(s), you can set it to never save them, and you can set it to ask. But the most convenient (and used by default) option is to ask if the project has changes and save it otherwise.