Visual Studio - как создать два проекта с использованием одних и тех же источников - PullRequest
2 голосов
/ 08 июня 2010

Мое решение состоит из 2 исполняемых проектов и пары DLL. Project1 - это проект смарт-устройства, Project2 - проект Windows Forms.
Оба проекта используют одни и те же библиотеки, причина в том, что я хочу проверить свои библиотеки на ПК, прежде чем развернуть их на устройстве.

Проблема в том, что типом проекта DLL может быть библиотека классов Smart Device или библиотека классов, а не оба. Я не могу добавить ссылку из проекта SD в WF и наоборот. Мне удалось добавить ссылку из проекта SD в файл dll (созданный из проекта библиотеки классов) вместо самого проекта, но по какой-то причине я получил сообщение «невозможно загрузить тип XXX из сборки YYY». Это не зависит от моего кода, потому что когда я создавал отдельный проект для одних и тех же источников, все было хорошо.

Единственное решение, которое я нашел, - это создание 2 типов проектов для каждой библиотеки, но я не знаю, как сделать 2 проекта на основе одних и тех же источников.

Ответы [ 3 ]

8 голосов
/ 08 июня 2010

Вы можете добавить все файлы обычно в один проект.

Затем можно щелкнуть правой кнопкой мыши другой проект, выбрать «Добавить существующий файл», выбрать файлы, нажать стрелку вниз рядом с кнопкой «Добавить» и нажать «Добавить как ссылку».

3 голосов
/ 08 июня 2010

Я не уверен, правильно ли вы поняли ответ MusiGenesis.

Идея состоит в том, чтобы создать библиотеки в виде библиотек классов устройств смарт-карт, а затем ссылаться на эти библиотеки классов смарт-устройств в обоих проектах "full framework" и "WinCE".

Теперь приложения SmartDevice не могут ссылаться на библиотеки Full Framework, но приложения Full Framework МОГУТ ссылаться на библиотеки смарт-устройств.

Итак, ваш окончательный ассортимент проекта может выглядеть так:

  • Library.dll - библиотека интеллектуальных устройств
  • FullFramework.exe - приложение Windows Forms для Full Framework, которое ссылается на Library.dll
  • WinCE.exe - приложение Compact Framework, которое ссылается на Library.dll

Приведенная выше конфигурация будет работать нормально. Просто помните о определенных различиях между компактным и полным фреймворком.

1 голос
/ 08 июня 2010

Обычно вы можете ссылаться на проект библиотеки классов Smart Device либо из проекта Smart Device EXE, либо из полнофункционального проекта WinForms EXE.

Тем не менее, в библиотеке классов Smart Device можно ссылаться на компоненты .NetCF-only, которые приведут к тому, что DLL не будет работать при обращении из полнофункционального проекта EXE.

Какие сборки действительно упоминаются в вашем сообщении об ошибке (я предполагаю, что буквально не говорит "XXX" и "YYY")?

...