Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2012/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vb.net 生成Wix项目时发生System.OutOfMemoryException错误_Vb.net_Visual Studio 2012_Wix - Fatal编程技术网

Vb.net 生成Wix项目时发生System.OutOfMemoryException错误

Vb.net 生成Wix项目时发生System.OutOfMemoryException错误,vb.net,visual-studio-2012,wix,Vb.net,Visual Studio 2012,Wix,我有一个安装了Wix 3.9.1208.0的Visual Studio 2012。我正在尝试创建一个引导程序,方法是采用引导程序项目。这是Bundle.wxs中的代码 <?xml version="1.0" encoding="UTF-8"?> <Wix xmlns="http://schemas.microsoft.com/wix/2006/wi" xmlns:bal="http://schemas.microsoft.com/wix/BalExtension"> &l

我有一个安装了Wix 3.9.1208.0的
Visual Studio 2012
。我正在尝试创建一个
引导程序
,方法是采用
引导程序项目
。这是
Bundle.wxs
中的代码

<?xml version="1.0" encoding="UTF-8"?>
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi"
xmlns:bal="http://schemas.microsoft.com/wix/BalExtension">
<Bundle IconSourceFile="D:\logo.png"  Copyright="2015@Company Name"  Name="Product Name" Version="1.0.0.0" Manufacturer="Company Name" UpgradeCode="ef645195-36e9-4b99-8374-86f8445714d8">
<BootstrapperApplicationRef Id="WixStandardBootstrapperApplication.RtfLicense">
      <bal:WixStandardBootstrapperApplication
        LicenseFile="D:\License.rtf"
        ShowVersion="yes"
        />
    </BootstrapperApplicationRef>

    <Chain>
  <ExePackage Id="Framework" Name="Microsoft .NET Framework 4.5.1 Setup" Cache="no" Compressed="yes" PerMachine="yes" Permanent="yes" Vital="yes" InstallCommand="/q" SourceFile="D:\NDP451-KB2858728-x86-x64-AllOS-ENU.exe"/>
  <ExePackage Id="SQLCompact" Name="Microsoft SQL Compact 4.0 Setup" Cache="no" Compressed="yes" PerMachine="yes" Permanent="yes" Vital="yes" InstallCommand="/q" SourceFile="D:\SSCERuntime_x86-ENU.exe"/>

  <MsiPackage Id="CRRuntime" Name="Crystal Report Runtime" Cache="no" Compressed="yes" Permanent="yes" SourceFile="D:\CRRuntime_32bit_13_0_13.msi" Vital="yes" />
  </Chain>
</Bundle>

每当我尝试构建引导程序项目时,都会出现错误,因为在文件
light.exe中抛出了类型为“System.OutOfMemoryException”的
异常,构建失败

我有一个核心i3处理器和4GB内存,在构建项目时,VS使用了几乎2GB的内存,在关闭Visual Studio之前,系统部分没有响应。停止构建过程不会释放获取的内存


有人能帮我吗?

不幸的是,我认为这只能归结为计算机无法处理Visual Studio试图做的一切。我遇到了同样的问题,只有在得到一台内存更大的新电脑时,问题才消失

解释

它在RAM用完之前退出的原因是单个进程希望在启动时分配特定数量的内存(当您进行构建时,许多进程启动,所有进程都要求内存),但是当没有足够的内存分配给请求时,系统会抛出异常

在发出错误消息时,您可能看不到内存已完全用完,因为请求大于您现有的可用内存,因此它没有分配内存,因此它仍然可用

(您可以查看以了解计算机如何分配内存。)

在异常之后“停止构建”并不需要“停止构建”。启动构建时启动的许多进程可能仍在运行

根据经验,每当出现内存不足异常时,都需要关闭并重新打开应用程序。除非你这样做,否则它不会正常工作

还值得注意的是,如果您运行的是32位,则只能访问3GB的RAM

这是一张我的32位4GB旧电脑的照片,其中一个项目在VisualStudio中打开。请注意,可用的
内存只有827MB

现在想象一下,当我构建项目时,所有试图获取更多内存的过程


对我来说,从使用32位处理器的
4GB内存到使用64位处理器的
16GB内存,完全解决了我所有的性能和内存问题。

你的
IconSourceFile
是一个
png
并且应该是一个
ico
。这会导致
light.exe
抛出
System.OutOfMemoryException