- Visual Studio Ultimate 2010
- Windows XP
- Настольное приложение WPF с использованием .NET 4.0
У нас есть настольное приложение, которое воспроизводит видео. Это видео является частью проекта, и проект упакован в установщик. Время от времени при создании проекта установщика отображается следующее сообщение об ошибке:
Недостаточно памяти для завершения этой операции
Если я перезапущу Visual Studio, все заработает.
Есть ли способ этого избежать? Есть ли лучший способ упаковать видео в установщик?
А я уже так делал чуть ли не в первую очередь сегодня не помогло, да ntfs
Добавлено через 2 минуты
Попробовал подгрузить с локальных ресурсов при чем пикчи, получил нехватку памяти с ходу сейчас Либо есть какой то лимит, либо это жестокий баг. Удалил подгружаемые пикчи, компиляция уже умерла всё равно после них.
Добавлено через 1 час 40 минут
«Чтобы исправить эту ошибку
Закройте неиспользуемые приложения, документы и исходные файлы.
Исключите ненужные элементы управления и формы для меньшей загруженности в каждый момент времени
Сократите число Public переменных.
Проверьте наличие свободного места на диске.
Увеличьте доступный объем ОЗУ, установив дополнительную память или перераспределив ее.
Убедитесь, что память освобождается, когда она больше не нужна.»
Ничего из этого не помогло, предпоследний вариант не применим в принципе, я не побегу за дополнительной плашкой что бы ее хватило еще на пару форм более того прочитал что у людей десятки форм и тысячи строк кода прекрасно тянут и на 512 мб при этом наблюдается легкая задумчивость студии но никаких выходок с мифической нехваткой памяти не испытывают
Выгрузил все что возможно, загрузка 350 мб, пик компиляции 650-700 мб, толку, нетю.
У меня есть небольшая проблема с Excel. Каждый раз, когда я открываю лист, я получаю эту ошибку:
примерно через 10-15 минут. Я попробовал несколько вещей, перечисленных в интернете, вот список того, что я пробовал: добавление дополнительной памяти, изменяющейся с 32-битной на 64-битную и обратно, добавление виртуальной памяти, отключение и включение DDE, изменение версий офиса, а также несколько настроек реестра , Теперь мне было интересно, если это может быть макрос, который я использую, который переключается между 2 листами с интервалом. Сначала я подумал, что это проблема, если я вытащил их из общего ресурса, поэтому я написал скрипт, который копирует их локально, но ошибка все равно возникает.
Dim RunTime1 As Date
Sub MacroSwitch()
Application.DisplayFullScreen = True
On Error GoTo Errhandler
Application.ScreenUpdating = False
Workbooks.Open Filename:= _
ThisWorkbook.Path & "\Monteursplanning.extern.xls", ReadOnly:=True
ActiveWindow.WindowState = xlMaximized
Exit Sub
Errhandler:
MsgBox "An error has occurred. The macro will end."
Application.DisplayFullScreen = False
End Sub
Sub MacroAutoRun1()
Application.DisplayFullScreen = True
RunTime1 = Now + TimeValue("00:01:00")
Application.OnTime RunTime1, "MacroAutoRun1"
If IsWbOpen("Monteursplanning.extern.xls") Then
Application.ScreenUpdating = False
Workbooks.Open Filename:= _
ThisWorkbook.Path & "\Monteursplanning.intern.xls", ReadOnly:=True
ActiveWindow.WindowState = xlMaximized
Windows("Monteursplanning.extern.xls").Activate
ActiveWindow.Close
Application.ScreenUpdating = True
Else
Application.ScreenUpdating = False
Workbooks.Open Filename:= _
ThisWorkbook.Path & "\Monteursplanning.extern.xls", ReadOnly:=True
ActiveWindow.WindowState = xlMaximized
Windows("Monteursplanning.intern.xls").Activate
ActiveWindow.Close
Application.ScreenUpdating = True
End If
End Sub
Я недавно установил MS Office Visio 2016. Сегодня, когда я делал свой первый крупный проект, он работал нормально. Я делал на моей работе на странице подписи. В какой-то момент у меня была большая часть блок-схемы, которую я мог повторно использовать для другой области, поэтому я выделил ее, скопировал и вставил. Нет проблем. Затем я переместил его туда, куда хотел. Опять без проблем. Затем я пошел, чтобы сохранить его, и он разбился.
Вот отчет о сбое:
Я работаю под управлением Windows 7 64-битной 32 ГБ памяти.
Problem signature:
Problem Event Name: APPCRASH
Application Name: VISIO.EXE
Application Version: 15.0.4569.1504
Application Timestamp: 52c5fd99
Fault Module Name: StackHash_8296
Fault Module Version: 6.1.7601.19045
Fault Module Timestamp: 56259295
Exception Code: c0000374
Exception Offset: 00000000000bffc2
OS Version: 6.1.7601.2.1.0.256.48
Locale ID: 1033
Additional Information 1: 8296
Additional Information 2: 8296c5aa6c10f8fc3d26a95f13218c1c
Additional Information 3: 99c3
Additional Information 4: 99c303f67aeaf55ed1ca45e8fb8d4035
Read our privacy statement online:
http://go.microsoft.com/fwlink/?linkid=104288&clcid=0x0409
If the online privacy statement is not available, please read our privacy statement offline:
C:\Windows\system32\en-US\erofflps.txt
Я пробовал это несколько раз с меньшими выборами и пытался сделать Save As вместо Save. Нет радости
Затем я запустил sfc /scannow без ошибок. Я запустил Visio в безопасном режиме, и он все еще падает, когда я пытаюсь это сделать. Конечно, я тоже попытался перезагрузиться.
Я наткнулся на несколько плат, где говорилось, что проблема в дополнении Bluetooth. Я проверил наличие этой надстройки (файл> параметры> Надстройки) и не установил ее в моей установке Visio.
Я наконец понял, что это должна быть сама версия 2016 года. Я полностью удалил его, а затем установил Visio 2013. Та же самая проблема все еще случается в 2013 как 2016.
Наконец, я решаю посмотреть, что произойдет, если я сделаю новую страницу. Поэтому я создал страницу 2 в своем документе, выделил область, которую хотел скопировать со страницы 1, скопировал, вставил ее на страницу 2 и сохранил без сбоев!
С тех пор я смог вырезать и вставлять на странице 2 точно такие же элементы, с которых я получал сбой со страницы 1 без проблем. Если я вернусь на первую страницу и попробую с ним, он снова вылетает.
Наконец, я удалил страницу 1, чтобы посмотреть, была ли это только эта страница и вылетал! Самая странная вещь, с которой я когда-либо сталкивался.
Мне нужно, чтобы мой документ был одной страницей, поэтому я хочу решить эту проблему. У меня также есть куча новых работ, которые я только что получил, и это потребует от меня создания большого количества блок-схем, поэтому я не могу этого допустить.
У кого-нибудь есть идеи по дальнейшему устранению неполадок, которые я должен попробовать? Спасибо за помощь!
11 ответов
Обычно это происходит, когда процессу сборки требуется много оперативной памяти, и он не может ее получить. Поскольку перезапуск Visual Studio устраняет проблему, скорее всего, это также ваш случай.
Попробуйте закрыть некоторые из запущенных приложений. Вы также можете попробовать добавить на свой компьютер больше оперативной памяти или увеличить файл подкачки.
11 Июл 2011 в 11:16
Я столкнулся с этим вопросом, когда пытался скомпилировать свое решение C # в Visual Studio 2010 в Windows XP. Один проект имел достаточное количество встроенных ресурсов (размер результирующей сборки составлял ~ 140 МБ), и я не мог скомпилировать решение, потому что я получал
Недостаточно памяти для завершения этой операции
Ошибка в моем выводе сборки.
Ни один из ответов на этот вопрос не помог, но я нашел ответ на «Недостаточно памяти для завершения этой операции» by ScottBurton42 на сайте social.msdn.microsoft.com. Он предлагает добавить переключатель 3GB
в файл Boot.ini
и сделать так, чтобы devenv.exe
учитывал большой адрес. Добавление переключателя 3GB
в мой файл Boot.ini
помогло мне (я думаю, что devenv.exe
для Visual Studio 2010 и более поздних версий уже поддерживает большие адреса).
Мой ответ основан на этом ответе.
Решение 1. Установите переключатель /3GB
Boot.ini
Страница Поддержка памяти и работа в Windows Systems в MSDN говорит:
Виртуальное адресное пространство процессов и приложений по-прежнему ограничено 2 ГБ, если в файле
Boot.ini
не используется переключатель/3GB
.Переключатель
/3GB
выделяет 3 ГБ виртуального адресного пространства для приложения, которое используетIMAGE_FILE_LARGE_ADDRESS_AWARE
в заголовке процесса. Этот переключатель позволяет приложениям адресовать 1 ГБ дополнительного виртуального адресного пространства свыше 2 ГБ.Виртуальное адресное пространство процессов и приложений по-прежнему ограничено 2 ГБ, если только переключатель
/3GB
не используется вBoot.ini file
. В следующем примере показано, как добавить параметр / 3GB в файлBoot.ini
, чтобы включить настройку памяти приложения:[boot loader] timeout=30 default=multi(0)disk(0)rdisk(0)partition(2)\WINNT [operating systems] multi(0)disk(0)rdisk(0)partition(2)\WINNT="????" /3GB
Обратите внимание: «
????
» в предыдущем примере — это программное имя операционной системы.
В Windows XP файл Boot.ini
можно изменить, перейдя в
- Свойства системы → Дополнительно → Запуск и восстановление → Настройки → Запуск системы → Изменить
На странице переключателя /3GB
в MSDN написано:
В 32-разрядных версиях Windows параметр
/3GB
включает 4 GT RAM Tuning, функцию, которая увеличивает виртуальное адресное пространство пользовательского режима до 3 ГБ и ограничивает компоненты режима ядра оставшимся 1 ГБ.
После перезапуска машины настройки вступят в силу.
Решение 2. Сообщите devenv.exe
о большом адресе:
Откройте командную строку Visual Studio (или командную строку разработчика, в зависимости от версии Visual Studio).
Введите и выполните следующую командную строку:
editbin /LARGEADDRESSAWARE {path}\devenv.exe`
Это позволит devenv.exe
получить доступ к 3 ГБ памяти вместо 2 ГБ.
Wai Ha Lee
11 Мар 2016 в 19:59
В моем случае проблема заключалась в тестовом проекте, содержащем очень большой (1,5 ГБ) тестовый файл в качестве встроенного ресурса . У меня на компьютере было 16 ГБ ОЗУ, из которых 8 ГБ было свободно, когда это произошло, поэтому проблема не была в ОЗУ.
Возможно, мы достигли ограничения в 2 ГБ, которое среда CLR имеет для любого отдельного объекта . Не углубляясь в то, что делает MSBuild под капотом, я могу только предположить, что во время компиляции встроенный ресурс загружается в граф объектов, который достигает этого предела.
Сообщение об ошибке очень бесполезно. Моя первая мысль, когда я это увидела, была: «Неужели у меня закончилось место на диске?»
Это тестовый проект для проверки файлов. Одно из требований — иметь возможность обрабатывать файлы такого размера, поэтому моя команда сочла разумным встроить его для использования в тестовых примерах.
Мы исправили ошибку, переместив файл в сеть (точно так же, как он будет доступен валидатору в производственной среде) и отметив тест как интеграционный, а не как модульный. В конце концов, разве модульные тесты не должны выполняться быстро?
3 Май 2013 в 13:56
Очистка и восстановление решения помогли мне
23 Сен 2012 в 10:35
Для Visual Studio вы можете попробовать сделать следующее:
- Закройте все экземпляры Visual Studio.
- Откройте инструмент разработчика Visual Studio в режиме администратора .
- Перейдите к:
C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\Common7\IDE
. - Введите следующее:
editbin /LARGEADDRESSAWARE devenv.exe
. - Также стоит перезагрузить компьютер.
Надеюсь это поможет )
27 Сен 2018 в 12:18
В моем случае на диске C осталось очень мало памяти. Я удалил несколько элементов с диска C и попробовал снова. Это сработало.
25 Июн 2015 в 17:14
Возможно, я опоздаю с ответом, но для справки в будущем вы можете проверить настройки файла дампа Windows (и, вероятно, установить для него значение «Нет»).
12 Ноя 2015 в 09:45
В моем случае сервер, на котором я выполнял код, не мог обрабатывать мой распараллеленный код.
Обычно я запускаю такую настройку, как следующая
new ParallelOptions { MaxDegreeOfParallelism = Math.Max(1, Environment.ProcessorCount / 2) }
Введение переменной и разрешение блокировки ядер, используемых до 1 (в результате чего получился код, подобный приведенному ниже), помогли мне решить эту проблему.
new ParallelOptions { MaxDegreeOfParallelism = 1 }
3 Ноя 2017 в 11:25
Ключ для меня: мы встроили в приложение огромный шаблон базы данных (тестирование заполнило его большим количеством данных). Я не видел, чтобы эта проблема возникала, поскольку удаление Embedded Resource закипает должным образом и перемещает базу данных в папку ресурсов.
14 Дек 2014 в 21:02
Я исправляю эту проблему, удаляя или отключив (исключив) файлы * .rpt, которые имеют большой размер; и я оптимизировал свои отчеты!
28 Ноя 2015 в 19:54
Я опаздываю с ответом, но может быть полезен другим. В моем случае простой перезапуск Visual Studio решает проблему.
Imran Ali Khan
1 Ноя 2017 в 15:43