Как я могу защитить исходный файл при отладке? - PullRequest
1 голос
/ 23 января 2012

У меня есть приложение, которое использует наш DAL, и когда я запускаю его в режиме отладки (vs2010) и намеренно пытаюсь вызвать аварийное завершение работы приложения (например, оставить строку подключения пустой из DAL), vs2010 открывает код для DAL в том месте, в котором он разбился. Это нормально, но я могу редактировать этот файл .cs и сохранять изменения, которые мне не нужны. Я подтвердил это, открыв проект DAL в другом экземпляре vs2010, и когда я вызываю сбой приложения, изменяю DAL.cs в приложении и сохраняю его, DAL в vs2010 сообщает мне, что файл был изменен вне проект и спрашивает, хочу ли я перезагрузить его.

Как я могу предотвратить это? Единственная ссылка, которую я использую для DAL в моем приложении, - это ссылка на DLL, вот и все.

Ответы [ 3 ]

1 голос
/ 23 января 2012

Вы пытались зайти в «Инструменты> Параметры> Отладка> Изменить и продолжить» и снять флажок «Включить редактирование и продолжить»?

1 голос
/ 23 января 2012

Файл AssemblyName.pdb связывает скомпилированную DLL с исходным кодом.
Visual Studio использует этот файл для отображения исходного кода при отладке.

Вы можете удалить этот файл и избавиться от ссылки на источник.
Это даст вам значительно худший опыт отладки.

0 голосов
/ 23 января 2012

Сделать файл .cs доступным только для чтения. Если он доступен только для чтения, вы сможете увидеть его, но не сможете сохранить изменения. (В зависимости от настроек Visual Studio вы все еще можете редактировать файл в памяти, но это не имеет значения, поскольку внесенные вами изменения не будут сохранены на диске.)

Если вам нужен более детальный контроль (например, когда вы хотите иметь возможность редактировать исходные файлы, но не свои тестеры), вы можете использовать списки контроля доступа (ACL) . Задайте дополнительные вопросы об этом на сервере Fault.

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

...