visual-studio-2010 - tag - visual studio code path intellisense
No hay suficiente almacenamiento disponible para completar esta operaciĆ³n (11)
Ambiente:
- Visual Studio Ultimate 2010
- Windows XP
- Aplicación de escritorio WPF utilizando .NET 4.0
Tenemos una aplicación de escritorio que reproduce un video. Este video es parte de un proyecto y el proyecto está empaquetado en el instalador. De vez en cuando, la construcción del proyecto de instalación muestra este mensaje de error:
No hay suficiente almacenamiento disponible para completar esta operación
Si reinicio Visual Studio funciona.
Hay alguna manera de evitar esto? ¿Hay una mejor manera de empaquetar videos en un instalador?
En mi caso, el servidor en el que estaba ejecutando el código no podía manejar mi código paralelizado.
Normalmente estoy ejecutando una configuración como la siguiente
new ParallelOptions { MaxDegreeOfParallelism = Math.Max(1, Environment.ProcessorCount / 2) }
Al presentar una variable y permitir el bloqueo de los núcleos utilizados en 1 (lo que resulta en un código como el siguiente), resolví este problema para mí.
new ParallelOptions { MaxDegreeOfParallelism = 1 }
En mi caso, me quedaba muy poca memoria en la unidad C. Borré algunos elementos de la unidad C y lo intenté de nuevo. Funcionó.
Es posible que tarde en responder, pero para futuras referencias, es posible que desee verificar la configuración del archivo de volcado de Windows (y probablemente establecerlo en ninguno).
Esto suele suceder cuando el proceso de construcción necesita una gran cantidad de memoria RAM y no puede obtenerlo. Desde que reiniciar Visual Studio soluciona el problema, lo más probable es que también sea su caso.
Intenta cerrar algunas de las aplicaciones en ejecución. También puede intentar agregar más RAM a su máquina o aumentar el archivo de página.
La clave para mí: habíamos incrustado una enorme plantilla de base de datos (las pruebas la habían llenado con gran cantidad de datos) en la aplicación. No he visto surgir este problema desde que se eliminaron los boils de los recursos incrustados y se movió la base de datos a una carpeta de recursos.
Limpiando y reconstruyendo la solución funcionó para mí.
Me encontré con esta pregunta al intentar compilar mi solución C # en Visual Studio 2010 en Windows XP. Un proyecto tenía una buena cantidad de recursos incorporados (el tamaño del ensamblaje resultante era ~ 140MiB) y no pude compilar la solución porque estaba obteniendo el
No hay suficiente almacenamiento disponible para completar esta operación
error en mi salida de compilación.
Ninguna de las respuestas a esta pregunta me ayudó, pero encontré una respuesta a " No hay suficiente almacenamiento disponible para completar esta operación " por ScottBurton42 en social.msdn.microsoft.com. Se sugiere agregar el conmutador de 3GB
al archivo Boot.ini
y hacer que devenv.exe
grandes direcciones. Agregar el interruptor de 3GB
a mi archivo Boot.ini
fue lo que funcionó para mí (creo que devenv.exe
para Visual Studio 2010 y superior ya es compatible con las grandes direcciones).
Mi respuesta se basa en esa respuesta.
Solución 1: establecer el interruptor /3GB
Boot.ini
La página Soporte de memoria y sistemas operativos de Windows en MSDN dice:
El espacio de direcciones virtuales de los procesos y aplicaciones todavía está limitado a 2 GB a menos que se use el
/3GB
en el archivoBoot.ini
.El conmutador
/3GB
asigna 3 GB de espacio de direcciones virtuales a una aplicación que usaIMAGE_FILE_LARGE_ADDRESS_AWARE
en el encabezado del proceso. Este conmutador permite que las aplicaciones dirijan 1 GB de espacio de direcciones virtuales adicional por encima de 2 GB.El espacio de direcciones virtuales de los procesos y aplicaciones todavía está limitado a 2 GB, a menos que se use el
/3GB
en elBoot.ini file
. El siguiente ejemplo muestra cómo agregar el parámetro / 3GB en el archivoBoot.ini
para habilitar el ajuste de la memoria de la aplicación:
[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
La nota "
????
" en el ejemplo anterior es el nombre programático del sistema operativo.
En Windows XP, el archivo Boot.ini
puede modificarse yendo a
- Propiedades del sistema → Avanzado → Inicio y recuperación → Configuración → Inicio del sistema → Editar
La página en el conmutador /3GB
en MSDN dice:
En las versiones de Windows de 32 bits, el parámetro
/3GB
habilita la/3GB
4 GT RAM, una función que amplía el espacio de direcciones virtuales en modo de usuario a 3 GB y restringe los componentes en modo de núcleo a los 1 GB restantes.El parámetro
/3GB
es compatible con Windows Server 2003, Windows XP y Windows 2000. En Windows Vista y versiones posteriores de Windows, use el elementoIncreaseUserVA
enBCDEdit
.
Reiniciar la máquina hará que la configuración tenga efecto.
Solución 2: Hacer que la dirección grande de devenv.exe
consciente:
Abra un símbolo del sistema de Visual Studio (o un símbolo del sistema del desarrollador, según la versión de Visual Studio)
Escriba y ejecute la siguiente línea de comando:
editbin /LARGEADDRESSAWARE {path}/devenv.exe`
donde
{path}
es la ruta adevenv.exe
(puede encontrar esto yendo a las propiedades del acceso directo de Visual Studio).
Esto permitirá que devenv.exe
acceda a 3 GB de memoria en lugar de 2 GB.
Mi solución a este problema es eliminar o deshabilitar (excluir) los archivos * .rpt que tienen un gran tamaño, y he optimizado mis informes.
Para Visual Studio, puedes intentar hacer lo siguiente:
- Cerrar todas las instancias de Visual Studio.
- Abra la herramienta Visual Studio Developer en modo Administrador .
- Navegar a:
C:/Program Files (x86)/Microsoft Visual Studio/2017/Professional/Common7/IDE
. - Escriba lo siguiente:
editbin /LARGEADDRESSAWARE devenv.exe
. - También vale la pena reiniciar PC.
Espero que esto ayude )
Soy tarde para responder, pero puede ser útil para otros En mi caso, simplemente reiniciar Visual Studio soluciona el problema
Problema
En mi caso, el problema fue con un proyecto de prueba que contenía un archivo de prueba muy grande (1.5 GB) como recurso incrustado . Tengo 16 GB de RAM en mi máquina con 8 GB libres cuando esto ocurrió, por lo que la RAM no fue el problema.
Es posible que estemos alcanzando el límite de 2 GB que tiene el CLR en un solo objeto . Sin profundizar en lo que MSBuild está haciendo bajo el capó, solo puedo especular que durante el tiempo de compilación, el recurso incrustado se carga en un gráfico de objetos que está alcanzando este límite.
El mensaje de error es muy inútil. Mi primer pensamiento cuando lo vi fue: "¿Me he quedado sin espacio en el disco?"
Solución
Es un proyecto de prueba de validación de archivos. Uno de los requisitos es poder manejar archivos de este tamaño, por lo que, a primera vista, mi equipo pensó que era razonable incrustarlo para usarlo en casos de prueba.
Arreglamos el error moviendo el archivo a la red (de la misma manera que el validador en producción lo accedería) y marcando la prueba como una prueba de integración en lugar de una prueba de unidad. Después de todo, ¿no se supone que las pruebas unitarias son rápidas?