Team and OS resilient assembly references for Visual Studio Extensibility development
If you just go and use the VS Add Reference dialog to pick assemblies from the PublicAssemblies or PrivateAssemblies or the Visual Studio SDK installation folder, you will end up with references that will have relative or absolute hint paths pointing to the assembly location in YOUR machine, like:
<Reference Include="Microsoft.VisualStudio.ExtensionManager, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL"> <SpecificVersion>False</SpecificVersion> <HintPath>C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE\PrivateAssemblies\Microsoft.VisualStudio.ExtensionManager.dll</HintPath> </Reference> <Reference Include="Microsoft.VisualStudio.Modeling.Sdk.Shell.10.0, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL"> <SpecificVersion>False</SpecificVersion> <HintPath>C:\Program Files (x86)\Microsoft Visual Studio 2010 SDK\VisualStudioIntegration\Common\Assemblies\v4.0\Microsoft.VisualStudio.Modeling.Sdk.Shell.10.0.dll</HintPath> </Reference>
And this is a problem of course because if your teammates are not using an x64 OS (in this case) or the resulting relative path is not exactly the same as in your machine, they will not be able to build the project...