我已经使用Bootstrapper Project for Wix v3项目类型构建了“ HelloWord”安装程序。
我的bundle.wxs是
<?xml version="1.0" encoding="UTF-8"?>
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi"
xmlns:util="http://schemas.microsoft.com/wix/UtilExtension"
xmlns:bal="http://schemas.microsoft.com/wix/BalExtension">
<Bundle Name="Bundle_name"
Version="1.0.0.0"
Manufacturer="Producter"
UpgradeCode="C82A383C-751A-43B8-90BF-A250F7BC2863"
IconSourceFile="..\WpfForms\Assets\my_lovely.ico" >
<BootstrapperApplicationRef Id="ManagedBootstrapperApplicationHost">
<Payload SourceFile="..\WpfForms\BootstrapperCore.config"/>
<Payload SourceFile="..\WpfForms\bin\Debug\WpfForms.dll"/>
<Payload SourceFile="..\WpfForms\bin\Debug\GalaSoft.MvvmLight.dll"/>
<!--<Payload SourceFile="..\WpfForms\bin\Debug\Microsoft.Practices.ServiceLocation.dll"/>
<Payload SourceFile="..\WpfForms\bin\Debug\Microsoft.WindowsAPICodePack.dll"/>
<Payload SourceFile="..\WpfForms\bin\Debug\Microsoft.WindowsAPICodePack.Shell.dll"/>-->
<Payload SourceFile="C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5\System.ServiceProcess.dll"/>
<Payload SourceFile="C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5\System.Configuration.Install.dll"/>
<Payload SourceFile="C:\Program Files (x86)\WiX Toolset v3.11\SDK\Microsoft.Deployment.WindowsInstaller.dll"/>
</BootstrapperApplicationRef>
<Chain>
<PackageGroupRef Id='Netfx4Full'/>
<MsiPackage SourceFile="..\WixSetupProject\bin\Debug\WixSetupProject.msi" Id="InstallationPackageId" Cache="yes" Visible="no"/>
</Chain>
</Bundle>
<Fragment>
<WixVariable Id="WixMbaPrereqPackageId" Value="Netfx4Full" />
<WixVariable Id="WixMbaPrereqLicenseUrl" Value="NetfxLicense.rtf" />
<util:RegistrySearch Root="HKLM" Key="SOFTWARE\Microsoft\Net Framework Setup\NDP\v4\Full" Value="Version" Variable="Netfx4FullVersion" />
<util:RegistrySearch Root="HKLM" Key="SOFTWARE\Microsoft\Net Framework Setup\NDP\v4\Full" Value="Version" Variable="Netfx4x64FullVersion" Win64="yes" />
<PackageGroup Id="Netfx4Full">
<ExePackage Id="Netfx4Full" Cache="no" Compressed="yes" PerMachine="yes" Permanent="yes" Vital="yes" Name="DotNet_4"
SourceFile="../WixBootstrapper/DotNet/NDP462-KB3151800-x86-x64-AllOS-ENU.exe"
DownloadUrl="http://go.microsoft.com/fwlink/?LinkId=164193"
DetectCondition="Netfx4FullVersion AND (NOT VersionNT64 OR Netfx4x64FullVersion)" />
</PackageGroup>
</Fragment>
</Wix>
我的问题是工作站的防病毒软件被配置为阻止来自temp
目录的任何活动,并且所构建的installer.exe将自身复制为“ C:\ Windows \ Temp {74EA5B2A-DA46-4B3F-A8E9- 4FCEC4B4523C} .cr \ WixBootstrapper.exe”并默认运行它。因此它已被防病毒软件锁定,因此安装开始就已经结束。
有人知道我该如何阻止WiX组件在临时目录中创建缓存或其他内容,并设置为从curent文件夹而不是temp
中运行任何嵌套的可执行文件及其自身?
答案 0 :(得分:0)
检查Windows的组策略设置后,结果是 一个防病毒阻止问题。
组策略? :日志中是否包含以下内容:
Error 0x800704ec: Failed to launch clean room process: "C:\WINDOWS\Temp\{AB10C981-0D7D-4AA6-857F-CC37696DB4BE}\.cr\Bundle.exe" -burn.clean.room="C:\Test\Bundle.exe" -burn.filehandle.attached=652 -burn.filehandle.self=656 -log "C:\Test\bundle.log"
Error 0x800704ec: Failed to run untrusted mode.
还是说其他话?有一种可能导致类似问题的组策略。 See WiX issue 5856。
反病毒宽限期? :如果您是管理员,我认为应该有可能从您的反病毒获得临时宽限期。这样您就可以执行测试了。我会先给您自己的支持部门打电话,如果不成功,请打Kaspersky user forums。也许您有一份提供优先支持的卡巴斯基支持协议?
误报 :我还坚持要求您将二进制文件上传到virustotal.com,以测试误报。那你不管做什么。 Antivirus Whitelisting Pains,由 Bogdan Mitrache 。
误报实际上有时可能比实际的恶意软件更严重(只要恶意软件没有造成破坏性) 因为您不能仅仅告诉用户重建他们的机器。相反,你实际上有 从一般意义上解决他们的问题。用户不仅有问题要解决,供应商也有一个。 您如何将包含60多个反恶意软件套件的产品列入白名单? ?我认为您首先尝试使用virustotal.com(不隶属于)-检查您是否确实拥有这样的产品一个问题。