ApplicationDeployment.IsFileGroupDownloaded(String) Methode
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Überprüft, ob die genannte Dateigruppe bereits zum Clientcomputer heruntergeladen wurde.
public:
bool IsFileGroupDownloaded(System::String ^ groupName);
public bool IsFileGroupDownloaded (string groupName);
member this.IsFileGroupDownloaded : string -> bool
Public Function IsFileGroupDownloaded (groupName As String) As Boolean
Parameter
- groupName
- String
Die genannte Gruppe von Dateien zum Herunterladen. Alle Dateien, die in einer ClickOnce Anwendung als "optional" gekennzeichnet sind, erfordern einen Gruppennamen.
Gibt zurück
true, wenn die Dateigruppe bereits für die aktuelle Version dieser Anwendung heruntergeladen wurde, andernfalls false. Wenn eine neue Version der Anwendung installiert wurde und die neue Version in der Dateigruppe keine Dateien hinzugefügt, entfernt oder geändert hat, gibt IsFileGroupDownloaded(String)true zurück.
Ausnahmen
groupName ist keine im Anwendungsmanifest definierte Dateigruppe.
Beispiele
Im folgenden Codebeispiel werden alle Dateien in der HelpFiles Gruppe auf den Datenträger heruntergeladen.
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
Hinweise
IsFileGroupDownloaded funktioniert in einer teilweise vertrauenswürdigen Anwendung ohne Sicherheitsanforderungen.
Wenn Sie eine Anwendung aktualisieren, kopiert ClickOnce alle On-Demand-Datendateien aus der vorherigen Version in das Datenverzeichnis der neuen Version. Wenn Sie eine neue Version dieser Dateien herunterladen, sollten Sie alle Daten entfernen, die Sie von der alten Version beibehalten möchten, und sie in die neue Version verschieben.