Недостаточно памяти для выполнения этого действия

Недостаточно памяти для выполнения этого действия ТЭК
  • 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, чтобы посмотреть, была ли это только эта страница и вылетал! Самая странная вещь, с которой я когда-либо сталкивался.

Мне нужно, чтобы мой документ был одной страницей, поэтому я хочу решить эту проблему. У меня также есть куча новых работ, которые я только что получил, и это потребует от меня создания большого количества блок-схем, поэтому я не могу этого допустить.

У кого-нибудь есть идеи по дальнейшему устранению неполадок, которые я должен попробовать? Спасибо за помощь!

Про торги:  Плагин esep для яндекс браузера и расширение плагина Saby

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 о большом адресе:

  1. Откройте командную строку Visual Studio (или командную строку разработчика, в зависимости от версии Visual Studio).

  2. Введите и выполните следующую командную строку:

    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 вы можете попробовать сделать следующее:

  1. Закройте все экземпляры Visual Studio.
  2. Откройте инструмент разработчика Visual Studio в режиме администратора .
  3. Перейдите к:
    C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\Common7\IDE.
  4. Введите следующее:
    editbin /LARGEADDRESSAWARE devenv.exe.
  5. Также стоит перезагрузить компьютер.

Надеюсь это поможет )

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

Оцените статью
ТЭК Торги