我试图在我的包中创建一个ExePackage [使用DownloadUrl属性],下载Sql Express 2014并使用以下代码安装它
<ExePackage Id="Sql2014Express"
DisplayName="SQL Server 2014 Express"
Cache="no"
Compressed="no"
PerMachine="yes"
Permanent="no"
Vital="yes"
Name="SQLEXPRWT_x64_ENU.exe"
DownloadUrl="http://download.microsoft.com/download/E/A/E/EAE6F7FC-767A-4038-A954-49B8B05D04EB/ExpressAndTools%2064BIT/SQLEXPRWT_x64_ENU.exe"
InstallCommand="/ACTION=Install /INSTANCENAME=$(var.InstanceName) /FEATURES=SQL /SECURITYMODE=SQL [SqlVariable] /TCPENABLED=1 /SQLSVCACCOUNT="NT AUTHORITY\NETWORK SERVICE" /SQLSVCSTARTUPTYPE=Auto /SQLSYSADMINACCOUNTS=BUILTIN\Administrators /ADDCURRENTUSERASSQLADMIN=FALSE /Q /HIDECONSOLE /SkipRules=RebootRequiredCheck /IAcceptSQLServerLicenseTerms"
UninstallCommand="/Action=Uninstall /INSTANCENAME=$(var.InstanceName) /FEATURES=SQL /Q /HIDECONSOLE"
DetectCondition="SqlInstanceFound"
InstallCondition="$(var.ServerInstall)">
<ExitCode Value ="3010" Behavior="forceReboot" />
</ExePackage>
Run Code Online (Sandbox Code Playgroud)
当我尝试构建安装程序包时,我收到以下错误....
Error 2 The system cannot find the file 'SourceDir\SQLEXPRWT_x64_ENU.exe'.
Run Code Online (Sandbox Code Playgroud)
我可以将SourceFile属性设置为本地文件,并将其包含在我的安装中,但我宁愿不必使用我的安装程序移动800mb +文件.
Rya*_*n J 12
如果您将捆绑包设置为Compressed=no它,则不会在最终捆绑包中包含源文件.您收到"找不到文件"的原因是因为在构建安装程序时,它需要本地版本的程序包EXE文件才能从中获取信息.如果要构建仅具有下载URL的项目,则需要指定RemotePayload元素,并提供有关远程包的更多定义信息.
这将允许您构建安装包而无需在计算机上安装源文件,但您需要确保准确描述了您的有效负载,否则您的安装将失败.
在您的ExePackage元素上,请确保包含Name属性,该属性是旁边的必需属性之一SourceFile,但SourceFile不允许使用RemotePayload.你的例子包括它,所以你应该在那里.
将<RemotePayload>元素包含为ExePackage像这样的子元素:
<RemotePayload Description="MyRemoteApp" ProductName="MyProductName" Size="size-in-bytes" Version="1.1.1.1" Hash="SHA-1-checksum-here"/>
Run Code Online (Sandbox Code Playgroud)
所需的所有信息都是特定包装的属性.如果这不是一个选项,则需要确保源文件在构建时在本地可用,但确保它未被压缩,因此用户可以安装并从URL下载有效负载.
有关详细信息,请参阅RemotePayload参考.