加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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

发布时间:2020-12-17 07:10:39 所属栏目:百科 来源:网络整理
导读:我安装了随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.micro
我安装了随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完全解决了我的所有性能和内存问题.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读