Задать вопрос
@BashkaMen
C# программист

Visual Studio, как делать несколько проектов?

Здравствуйте, возникла проблема при создании отдельных модулей программы.

У меня есть проект WPF в котором просто представление (я пишу с паттерном MVVM).
Ещё есть 2 проекта DLL ViewModel и Model.
Каждый раз когда что то меняю в Model и собираю проект, пишет что не удалось получить доступ к файлу так как он занят другим процессом, как я понимаю самой Visual Studio, и что б это обходить я после изменений в Model перезапускаю студию (студия новая 2017 вчера переустанавливал). С ViewModel таких проблем нет.

Зависимости таковы:

WPF - ViewModel, Model
ViewModel - Model (Модели объектов с INotifyPropertyChanged и прочие классы с логикой)
Model - Сама по себе, не кто не нужен.

Да и вообще как правильно разделять такие вещи? Раньше делил на папки, а не проекты - проблем не было.
  • Вопрос задан
  • 284 просмотра
Подписаться 2 Простой Комментировать
Пригласить эксперта
Ответы на вопрос 2
lam0x86
@lam0x86
По поводу залоченных файлов не подскажу, никогда такой проблемы не возникало. Попробуйте отключить все экстеншны студии. Есть ли post-build steps? Может, какой-то процесс там файлы лочит. Чтобы понять, кто лочит файл, можно воспользоваться утилитой ProcessExplorer.

А по поводу разделения View и ViewModel в отдельные сборки - это явный over-engineering. Достаточно, как вы делали раньше, разбить код на пространства имён и папки.

UPD. нашёл на просторах интернета: In Windows 7, if you try to delete a file that is locked, the error message will tell you which process has it locked.
Ответ написан
@kttotto
пофиг на чем писать
как я понимаю самой Visual Studio

Нужно не предполагать, а выяснить точно. Может Вы внутри своего проекта запускаете еще процессы, которые используют этот файл и Вы не определили на него диспоуз с закрытием процесса. Может как то кастомно используете орм, где при завершении работы проекта не закрывается соединение с бд.

Я склоняюсь к тому, что у Вас в проекте есть запущенные процессы, которые надо бы руками в коде закрыть перед выходом из приложения.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы