DeploymentProgressChangedEventArgs.BytesTotal Property
Definition
Important
Some information relates to prerelease product that may be substantially modified before it’s released. Microsoft makes no warranties, express or implied, with respect to the information provided here.
Gets the total number of bytes in the download operation.
public:
property long BytesTotal { long get(); };
public long BytesTotal { get; }
member this.BytesTotal : int64
Public ReadOnly Property BytesTotal As Long
Property Value
An Int64 representing the total size of the download, in bytes.
Examples
The following code example downloads a file group named HelpFiles
, and displays download progress in a status bar. This example requires that you deploy a Windows Forms application, and that your main form has a StatusStrip control, and a ToolStripStatusLabel control named downloadStatus
.
void LaunchAppUpdate()
{
if (ApplicationDeployment::IsNetworkDeployed)
{
ApplicationDeployment^ ad =
ApplicationDeployment::CurrentDeployment;
ad->UpdateCompleted +=
gcnew AsyncCompletedEventHandler(this,
&Form1::LaunchAppUpdate_UpdateCompleted);
ad->UpdateAsync();
}
}
void LaunchAppUpdate_UpdateCompleted(Object^ sender,
AsyncCompletedEventArgs^ e)
{
if (!e->Cancelled)
{
if (nullptr != e->Error)
{
System::Windows::Forms::DialogResult dr =
MessageBox::Show(
"The application has been updated. Restart?",
"Restart Application",
MessageBoxButtons::OKCancel);
if (System::Windows::Forms::DialogResult::OK == dr)
{
Application::Restart();
}
}
else
{
// Replace with your own error reporting or logging.
MessageBox::Show(
"The application encountered an error in " +
"downloading the latest update. Error: {0}",
e->Error->Message);
}
}
else
{
// Replace with your own error reporting or logging.
MessageBox::Show(
"The update of the application's latest version was " +
"cancelled.");
}
}
private void DownloadFileGroupAsync(string fileGroup)
{
if (ApplicationDeployment.IsNetworkDeployed)
{
ApplicationDeployment deployment = ApplicationDeployment.CurrentDeployment;
try
{
if (!deployment.IsFileGroupDownloaded(fileGroup))
{
deployment.DownloadFileGroupProgressChanged += new DeploymentProgressChangedEventHandler(deployment_DownloadFileGroupProgressChanged);
deployment.DownloadFileGroupCompleted += new DownloadFileGroupCompletedEventHandler(deployment_DownloadFileGroupCompleted);
deployment.DownloadFileGroupAsync(fileGroup);
}
}
catch (InvalidOperationException ioe)
{
MessageBox.Show("This application is not a ClickOnce application. Error: " + ioe.Message);
return;
}
}
}
void deployment_DownloadFileGroupProgressChanged(object sender, DeploymentProgressChangedEventArgs e)
{
downloadStatus.Text = String.Format("Downloading file group {0}; {1:D}K of {2:D}K completed.", e.Group, e.BytesCompleted / 1024, e.BytesTotal / 1024);
}
void deployment_DownloadFileGroupCompleted(object sender, DownloadFileGroupCompletedEventArgs e)
{
if (e.Error != null)
{
downloadStatus.Text = "Could not download files. Will try again later.";
return;
}
else if (e.Cancelled)
{
downloadStatus.Text = "The file download has been cancelled.";
return;
}
downloadStatus.Text = String.Format("Download of file group {0} complete.", e.Group);
}
Dim WithEvents ADDownloadHelpFiles As ApplicationDeployment
Private Sub DownloadHelpFiles(ByVal GroupName As String)
If (ApplicationDeployment.IsNetworkDeployed) Then
ADDownloadHelpFiles = ApplicationDeployment.CurrentDeployment
If ADDownloadHelpFiles.IsFirstRun Then
Try
If Not ADDownloadHelpFiles.IsFileGroupDownloaded(GroupName) Then
ADDownloadHelpFiles.DownloadFileGroupAsync(GroupName)
End If
Catch ioe As InvalidOperationException
MessageBox.Show("This application is not a ClickOnce application.")
Return
End Try
End If
End If
End Sub
Private Sub ADDownloadHelpFiles_DownloadFileGroupProgressChanged(ByVal sender As Object, ByVal e As DeploymentProgressChangedEventArgs) Handles ADDownloadHelpFiles.DownloadFileGroupProgressChanged
DownloadStatus.Text = String.Format("Downloading file group {0}; {1:D}K of {2:D}K completed.", e.Group, e.BytesCompleted / 1024, e.BytesTotal / 1024)
End Sub
Private Sub ADDownloadHelpFiles_DownloadFileGroupCompleted(ByVal sender As Object, ByVal e As DownloadFileGroupCompletedEventArgs) Handles ADDownloadHelpFiles.DownloadFileGroupCompleted
DownloadStatus.Text = String.Format("Download of file group {0} complete.", e.Group)
End Sub
Remarks
For CheckForUpdateProgressChanged, the BytesTotal property refers to the downloading of the deployment manifest. For UpdateProgressChanged, the property refers to the download progress of the entire update, included the manifests, assemblies, and data files. For DownloadFileGroupProgressChanged, the property refers to the download progress of the entire set of files that are part of the named group.