Я создаю одно приложение Windows Form на машине для своих друзей. Он отлично работает на своей машине. Но когда я попытался запустить такое же приложение на своей собственной машине, то из строки _dialog.ShowDialog()
возникло исключение, подобное «accessviolationexception», пытающееся читать или записывать защищенную память, что часто свидетельствует о том, что другая память повреждена ... ». Я проверяю эту ошибку в сети, и я нашел следующие решения:Accessviolationexception попытался прочитать или записать защищенную память
1) Меню «Сервис» -> Параметры -> Отладка -> Общие -> Снимите эту опцию «Подавить оптимизацию JIT на нагрузке модуля»: http://social.msdn.microsoft.com/Forums/en-US/8789ea67-fbc5-4a7b-a4eb-d4a8a050d5c1/attempt-to-read-or-write-protected-memory-this-is-often-an-indicating-that-other-memory-is-corrupt. Сделано на моей машине, но не работало.
2) Attempted to read or write protected memory, Установите http://support.microsoft.com/kb/971030 для фреймворка 2.0, .. 3.5, но я не нахожу ни одного из загружаемого продукта из ссылки ссылки.
Моя конфигурация машины: VS 2010 (SP1), используемая платформа 4.0, DB используется MS-Access.
Блок кода:
private void SetAttachmentInfo()
{
Dictionary<string, object> _fileInfo = new Dictionary<string, object>();
OpenFileDialog _dialog = new OpenFileDialog();
var _fileName = (object)(null);
var _fileData = (object)(null);
var _fileDataLength = (object)(null);
_dialog.Multiselect = false;
_dialog.Filter = "Office Files (*.doc;*.xls;*.ppt;*pdf;*txt) |*.doc;*xlsx;*.xls*.ppt;*pdf;*.txt;|Image Files (*.jpeg;*.png;*.jpg;*.gif) |*.jpeg;*.png;*.jpg;*.gif |All File|*.*";
if (_dialog.ShowDialog() != DialogResult.Cancel)
{
_fileInfo = GetAttachmentFileInformation(_dialog.FileName);
_fileInfo.TryGetValue("FileName", out _fileName);
_fileInfo.TryGetValue("FileData", out _fileData);
_fileInfo.TryGetValue("Lenght", out _fileDataLength);
FileName = Convert.ToString(_fileName);
FileData = (_fileData != null && (_fileDataLength as int?) > 0) ? (byte[])_fileData : (byte[])null;
AttachmentLength = _fileDataLength as int?;
}
}
Любая полезная помощь?