How do I add a reference to a Shared Code project (.shproj) from another project

25

When I created a new universal app project in Visual Studio it created a shared project that let me share code between the Windows Phone 8.1 and Windows 8.1 projects that were created.

Now I have other projects that I would also like to use that shared code. However, I do not see a way to add select that project in the "Add Reference..." window.

If I try to copy the reference from one of the existing projects I get the error:

Catastrophic failure (Exception from HRESULT: 0x8000FFFF (E_UNEXPECTED))

when I click 'Paste Reference'. How do I reference the shared project from other projects?

c#
.net
vb.net
visual-studio
asked on Stack Overflow Jun 18, 2014 by vossad01 • edited Jun 18, 2014 by Brandon

5 Answers

38

Adding the reference will require editing the project files where you want to add it. If it helps, you can peak at the project file where it is already referenced to see a working example.

Near the bottom of the project file (ex, a .csproj) there is likely already an <Import> element such as

<Project ...>
  [...]
  <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
</Project>

You add the Shared project by adding another element like that for the Shared project. For example:

<Project ...>
  [...]
  <Import Project="..\Shared\Shared.projitems" Label="Shared" />
  <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
</Project>

It is important for the Label attribute to be set to "Shared." If you set it to something else it will not be recognized as a Shared project by Visual Studio and will not appear under References. Project should be set to the path to the appropriate ".projitems" file.

answered on Stack Overflow Jun 18, 2014 by vossad01
8

Visual Studio 2017:

Right-click the References or Dependencies item in the Solution Explorer and choose "Add Reference..."

Dependencies or References context menu

The Reference Manager will open. Click "Shared Project" on the left side of the Reference Manager

enter image description here

Then select your project and click OK.

answered on Stack Overflow Sep 9, 2017 by theguy
3

In TargetProject.csproj file add that string:

<Import Project="..\YourSharedProject\YourSharedProject.projitems" Label="Shared" Condition="Exists('..\YourSharedProject\YourSharedProject.projitems')" />
answered on Stack Overflow Apr 19, 2019 by Morozov Damian • edited Aug 28, 2019 by Dean Kuga
0

Check your version of Visual Studio. in VS2017 there was a bug fix for version 15.9 which will show the Shared Project selector. Click Tools -> Update to get the lastest version of VS

answered on Stack Overflow Apr 2, 2020 by JoeyD
-2

Check out the Shared Project Reference Manager extension.

answered on Stack Overflow Feb 3, 2015 by hortman

User contributions licensed under CC BY-SA 3.0