Как совместно использовать один и тот же проект Visual Studio между различными решениями?Различные app.config и урегулирования .settings - PullRequest
5 голосов
/ 02 июня 2011

Название не полностью описывает реальный вопрос, так как я пытался поместить достаточно краткое описание в одну строку.

У меня есть проект на C #, которым я хочу поделиться между двумя разными решениями (.sln).Проект представляет собой приложение с методом Main.Это требует использования settings.settings и app.config.Каждое из двух решений требует ссылки на один и тот же проект C #, но для каждого решения app.config и settings.settings должны быть конкретными для своих решений.Таким образом, если проект C совместно используется решениями A и B, A включает в себя C, где C имеет app.config, специфичный для A, и B включает в себя точно такой же проект C, но C имеет app.config, специфичный для C. Есть ли способсделай это?Я стараюсь не копировать один и тот же проект (т. Е. C) в два разных места, потому что если я обновлю этот проект в одном решении, то мне придется внести те же изменения в другое решение.

Спасибо

Ответы [ 2 ]

3 голосов
/ 02 июня 2011

Возможно, вы можете использовать один из методов Open...() в ConfigurationManager для достижения этой цели.В противном случае может работать следующий хак (за исключением того, что вам нужно продублировать весь файл App.config): создайте минимальное консольное приложение D1 в A и D2 в B, затем вызовите C main() метод и используйте D1 и D2как стартап проектов.Теперь App.config из D1 и D2 будет использоваться вместо App.config в C.

2 голосов
/ 02 июня 2011

Проект, которым я хочу поделиться, фактически используется двумя разными местами контроля версий. Я хочу совместно использовать один и тот же проект (т. Е. C) между серверным решением SVN и серверным решением TFS. Одно решение, которое я нашел, которое работает (для более чем одного общего проекта, тоже), это связать app.config из каталога / ветви, расположенной над каталогом проекта общего ресурса. Таким образом, вместо использования файла app.config, расположенного в каталоге проекта C, у вас может быть 2 разных рабочих пространства, а над каталогом проекта C есть папка ApplicationSettings, в которой находится файл app.config. Каждое рабочее пространство для каждого отдельного решения может поддерживать свою собственную папку ApplicatonSettings, но может поддерживать точно такую ​​же копию общего проекта из системы управления версиями.

У меня есть проект в codeplex: http://wcfsilverlighthelper.codeplex.com/

Это рабочий пример того, что я имею в виду. Посмотрите на папку ApplicationSettings и обратите внимание, как файлы app.config используются в проектах решения T4.

...