Vb.net 生成Wix项目时发生System.OutOfMemoryException错误
我有一个安装了Wix 3.9.1208.0的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
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