我安装了随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.
现在想象一下构建项目时所有尝试获取更多内存的进程.