Как добавить ссылку на проект общего кода (.shproj) из другого проекта
Когда я создал новый проект универсального приложения в Visual Studio, он создал общий проект, который позволяет мне совместно использовать код между созданными проектами Windows Phone 8.1 и Windows 8.1.
Теперь у меня есть другие проекты, которые я также хотел бы использовать для этого общего кода. Однако я не вижу способа добавить этот проект в окно "Добавить ссылку...".
Если я попытаюсь скопировать ссылку из одного из существующих проектов, я получаю ошибку:
Катастрофический сбой (исключение из HRESULT: 0x8000FFFF (E_UNEXPECTED))
когда я нажимаю "Вставить ссылку". Как ссылаться на общий проект из других проектов?
Ответы
Ответ 1
Добавление ссылки потребует редактирования файлов проекта, в которые вы хотите добавить его. Если это помогает, вы можете пик в файле проекта, где он уже ссылается на рабочий пример.
В нижней части файла проекта (например,.csproj), вероятно, уже есть элемент <Import>
, например
<Project ...>
[...]
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
</Project>
Вы добавляете проект Shared, добавляя еще один такой элемент для проекта Shared. Например:
<Project ...>
[...]
<Import Project="..\Shared\Shared.projitems" Label="Shared" />
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
</Project>
Для атрибута Label важно установить значение "Shared". Если вы установите его на что-то еще, он не будет распознан как проект Shared Visual Studio и не появится в списке "Ссылки". Проект должен быть установлен в путь к соответствующему файлу .projitems.
Ответ 2
Visual Studio 2017:
Щелкните правой кнопкой мыши элемент "Ссылки или зависимости" в обозревателе решений и выберите "Добавить ссылку..."
![Зависимости или контекстное меню ссылок]()
Откроется диспетчер ссылок. Нажмите "Общий проект" в левой части диспетчера ссылок
![введите описание изображения здесь]()
Затем выберите свой проект и нажмите "ОК".
Ответ 3
В TargetProject.csproj добавьте эту строку:
<Import Project="..\YourSharedProject\YourSharedProject.projitems" Label="Shared" Condition="Exists('..\YourSharedProject\YourSharedProject.projitems')" />
Ответ 4
Просмотрите расширение Расширение общего диспетчера проектов.