构建Wix项目时出现System.OutOfMemoryException错误

时间:2015-07-21 05:58:27

标签: vb.net visual-studio-2012 wix

我安装了Visual Studio 2012并安装了Wix 3.9.1208.0。我想通过Bootstrapper创建一个BootStrapper Project。以下是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>

每当我尝试构建Bootstrapper项目时,我都会收到exception of type 'System.OutOfMemoryException' was thrown和文件light.exe中的错误,并且构建失败。

我有一个Core i3处理器和4GB内存,在构建项目时,VS使用了近2GB的RAM和系统部分无响应,直到我关闭Visual Studio。停止构建过程不会释放获取的内存。

任何人都可以帮助我吗?

2 个答案:

答案 0 :(得分:1)

不幸的是,我认为这只是因为计算机无法处理Visual Studio正在尝试的所有事情。我遇到了同样的问题,只有在获得具有更多RAM的新计算机时才会消失。

<强>解释

在RAM用完之前它退出的原因是个别进程想要在启动时分配特定数量的内存(当你进行构建时,很多进程启动,都要求内存)但是当没有足够的内存来分配请求时,系统会抛出异常。

并且您可能看不到错误消息时内存已完全耗尽,因为请求大于您可用的请求,因此它没有分配内存,因此它仍然可用。

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

&#34;停止构建&#34;在例外情况下没有必要&#34;停止构建。&#34;启动构建时启动的许多进程可能仍在运行。

根据经验,每当出现内存不足异常时,您需要关闭并重新打开应用程序。在您执行此操作之前,它将无法正常运行。

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

这是我在Visual Studio中打开项目的旧32位4GB计算机的图片。注意Available内存只有827 MB。

enter image description here

现在想象一下构建项目时所有尝试获取更多内存的进程。

我从4GB of RAM with a 32-bit processor16GB of RAM with a 64-bit processor完全解决了我的所有表现和记忆问题。

答案 1 :(得分:0)

您的IconSourceFilepng,应该是ico。这会导致light.exe抛出System.OutOfMemoryException