Здесь возникла досадная проблема. У меня есть приложение NHibernate / Forms, я работаю через SVN. Я сделал некоторые из своих собственных элементов управления, но когда я перетаскиваю их (или просматриваю некоторые редакторы форм, где я уже перетаскивал) на некоторые другие мои элементы управления, Visual Studio решает, что нужно выполнить часть написанного мной кода, включая часть, которая ищет hibernate.cfg.xml.
Я понятия не имею, почему это так, но (иногда!), Когда он выполняет код во время загрузки моей формы или перетаскивает его, переключает текущий каталог в C: \ program files \ vs 9.0 \ common7 \ ide, а затем nhibernate выдает исключение, что он не может найти hibernate.cfg.xml, потому что я ищу это в относительном пути.
Теперь я не хочу жестко кодировать местоположение hibernate.cfg.xml или просто копировать hibernate.cfg.xml в каталог ide (который будет работать). Мне нужно решение, которое получает каталог решений, в то время как текущий каталог - common7 \ ide. Что-то, что позволит кому-то просматривать мои формы в конструкторе при новой проверке в произвольном каталоге на произвольной машине. И нет, я не собираюсь загружать элементы управления в коде. У меня так много элементов управления внутри элементов управления, что выстраивать все без него - кошмар.
Я пробовал событие предварительной сборки, в результате которого был создан файл с каталогом решений, но, конечно, как я могу найти это в common7 \ ide? Все файлы проектов должны быть в каталоге решений из-за svn.
Спасибо за вашу помощь, ребята, я уже потратил несколько часов, напрасно пытаясь справиться с этим.
ОБНОВЛЕНИЕ: я установил hibernate.cfg как встроенный ресурс. Для каждой конфигурации я просто делаю новую конфигурацию сборки, отладку, выпуск, XYZ. В большинстве случаев я рекомендую встраивать любые файлы, от которых вы зависите, для запуска программы. Это значительно упрощает создание установщика.