Wenn ich die .docx-Datei mit 'Drawing Canvas' von VSTS mit WebClient herunterlade, ist das heruntergeladene .docx-Dokument beschädigt. Wenn ich gebrochen, meine ich, dass wir Word-Dokument nicht manuell öffnen können und wir haben folgende Fehlermeldung: "Die Datei ist beschädigt und kann nicht geöffnet werden".WebClient DownloadFile funktioniert nicht, wenn docx-Datei mit Canvas von VSTS heruntergeladen wird
Dies geschieht nur, wenn Word-Datei Canvas enthält und wenn von VSTS heruntergeladen wird?! Wenn ich von TFS2017 herunterlade oder wenn die .docx-Datei kein Canvas enthält, funktioniert alles.
Erstens dachte ich, dass das Problem mit dem Codieren zusammenhängt, also habe ich alle Codierungen getestet, die ich im WebClient gefunden habe. Änderungen an der Codierung konnten das aktuelle Problem nicht beheben.
Außerdem habe ich versucht, die Implementierung so zu ändern, dass wir nicht die Methode DownloadFile verwenden, und stattdessen habe ich Array von Bytes heruntergeladen und basierend auf Bytes erzeugt Word-Dokument. Mit dieser Änderung in der Implementierung haben wir das gleiche Problem wie zuvor.
Dies ist Codebeispiel:
static void Main(string[] args)
{
var tfsUri = new Uri("https://.../");
var projectCollection = TfsTeamProjectCollectionFactory.GetTeamProjectCollection(tfsUri);
var workItemStore = projectCollection.GetService<WorkItemStore>();
var workItem = workItemStore.GetWorkItem(2);
projectCollection.EnsureAuthenticated();
var credentials = workItemStore.TeamProjectCollection.Credentials;
var fileName = "D:\\test_folder\\files\\System.Description.docx";
var uri = workItem.Attachments[0].Uri;
using (var request = new WebClient() { Credentials = credentials })
{
request.DownloadFile(uri, fileName);
}
}
Vielen Dank für Ihre Hilfe, wenn Sie eine Idee haben.
Vielen Dank, das war sehr hilfreich :) – Raskolnikov