Senden von Text an Seriendruckfelder in Microsoft Word 2010

Ich verwende den folgenden Code, um einen Text an eine einfache Wortvorlage zu senden, die ich gerade mit einem einzelnen MergeField eingerichtet habe, um zu testen, ob ich diese Funktion nutzen kann.
Der Code, den ich benutze, ist wie folgt:

public static void ReplaceMailMergeField(string pWordDoc, string pMergeField, string pValue)
{
    object docName = pWordDoc;
    object missing = Missing.Value;
    Word.MailMerge mailMerge;
    Word._Document doc;
    Word.Application app = new Word.Application();
    app.Visible = false;
    doc = app.Documents.Open(ref docName, ref missing, ref missing, ref missing, ref missing,
                                          ref missing, ref missing, ref missing, ref missing,
                                          ref missing, ref missing, ref missing, ref missing,
                                          ref missing, ref missing, ref missing);
    mailMerge = doc.MailMerge;
    foreach (Word.MailMergeField f in mailMerge.Fields)
    {
        if (f.Code.Text.IndexOf("MERGEFIELD  \"" + pMergeField + "\"") > -1)
        {
            f.Select();
            app.Selection.TypeText(pValue);
        }
    }
    object saveChanges = Word.WdSaveOptions.wdSaveChanges;
    doc.Close(ref saveChanges, ref missing, ref missing);
    app.Quit(ref missing, ref missing, ref missing);
}

Was ich aus meiner Bewerbung mit folgendem aufrufe:

string pWordDoc = @"C:\Users\Pete-Laptop\Documents\CMS Document Mangement\Word Template.dotx";
cDocument.ReplaceMailMergeField(pWordDoc, "fieldAddress1", "Put address here!");

Aber nichts passiert. Wenn ich durch den Code gehe, kommt er bis zur app.Documents.Open und scheint dann einzufrieren. Ich glaube, das liegt daran, dass die Anwendung mein Word-Dokument nicht finden kann. Ist es richtig, den vollständigen Dateipfad an den Dateinamenparameter zu senden? Wenn nicht, wie findet die Anwendung sonst meine Word-Vorlage?

Antworten auf die Frage(2)

Ihre Antwort auf die Frage