#vsix #visual-studio-addins #vsx #vspackage #vs-extensibility
#vsix #visual-studio-addins #vsx #vspackage #vs-расширяемость
Вопрос:
Когда пользователь дважды щелкает элемент в одном из моих файлов, он открывает временный файл для редактирования с помощью DTE. Как только они закончат редактирование этого временного файла, они закрывают его, и он добавляется к родительскому файлу. Это отлично работает.
Моя проблема в том, что когда они идут, чтобы закрыть временный файл, он спрашивает их, хотят ли они сохранить. В этой ситуации правильнее всего нажать нет, иначе он попросит вас сохранить файл как что-то. Есть ли способ изменить это, чтобы он не запрашивал пользователя и всегда просто закрывал файл без его сохранения?
Заранее спасибо.
Ответ №1:
Хотя методы DTE не предоставляют способа сделать это, вместо этого вы можете использовать IVsUIShellOpenDocument, а затем явно добавить флаги RDT_DontSave, RDT_DontSaveAs и, возможно, RDT_DontAddtoMRU через аргумент grfOpenStandard, переданный IVsUIShellOpenDocument .OpenStandardEditor или аналогичный.
В качестве альтернативы вы можете использовать IVsRunningDocumentTable .ModifyDocumentFlags для добавления флагов после факта.
Но для этого вам нужно будет получить файл cookie документа с помощью чего-то вроде IVsRunningDocumentTable2.FindAndLockDocumentEx.