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

我安装了随Wix 3.9.1208.0安装的Visual Studio 2012.我试图通过BootStrapper项目创建一个Bootstrapper.这是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项目时,我都会收到错误,因为抛出类型’System.OutOfMemoryException’的异常并且在文件light.exe中并且构建失败.

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

谁能帮我吗 ?

解决方法

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

说明

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

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

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

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

根据经验,每当出现内存不足异常时,您需要关闭并重新打开应用程序.在你这样做之前它不会表现得很好.

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

这是我的旧32位4GB计算机的图片,在Visual Studio中打开了一个项目.注意可用内存仅为827 MB.

enter image description here

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

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

相关文章

Format[$] ( expr [ , fmt ] ) format 返回变体型 format$ 强...
VB6或者ASP 格式化时间为 MM/dd/yyyy 格式,竟然没有好的办...
在项目中添加如下代码:新建窗口来显示异常信息。 Namespace...
转了这一篇文章,原来一直想用C#做k3的插件开发,vb没有C#用...
Sub 分列() ‘以空格为分隔符,连续空格只算1个。对所选...
  窗体代码 1 Private Sub Text1_OLEDragDrop(Data As Dat...