Вы должны простить мое невежество в отношении этого кода. Я написал некоторый код для изменения приемника событий. Я настроил среду разработки для SharePoint и, наконец, получил ее для доступа и изменения определенных элементов кода.
Тем не менее, это следующая строка, где она терпит неудачу:
Word.Application wordApp = new Word.Application();
В этом случае кажется, что он не может открыть приложение локального слова, установленное на сервере Sharepoint, для обработки загруженного документа. Любые советы о том, как я могу включить запуск приложения Word в среде SharePoint в качестве приемника событий.
Полный код приведен ниже для полноты
using System;
using System.Security.Permissions;
using Microsoft.SharePoint;
using Microsoft.SharePoint.Utilities;
using Microsoft.SharePoint.Workflow;
using Word = Microsoft.Office.Interop.Word;
namespace chrisclementen.chrisclementen
{
public class chrisclementen : SPItemEventReceiver
{
/// <summary>
/// An item was added.
/// </summary>
public override void ItemAdded(SPItemEventProperties properties)
{
base.ItemAdded(properties);
commentscheck(properties);
}
private void commentscheck(SPItemEventProperties properties)
{
bool commentsorrevisions = false;
SPListItem item = properties.ListItem;
SPFile file = item.File;
if (properties.AfterUrl.EndsWith("docx"))
{
commentsorrevisions = WordCommentsChecker(file, properties);
}
}
private static bool WordCommentsChecker(SPFile file, SPItemEventProperties properties)
{
bool outcome = false;
Word.Application wordApp = new Word.Application();
properties.ListItem["Title"] = "bextor";
properties.ListItem.Update();
Word.Document document = wordApp.Documents.Open(file);
int commentscount = document.Comments.Count;
int revisionscount = document.Revisions.Count;
if (commentscount != 0 || revisionscount != 0)
{
Console.WriteLine("comments");
document.ActiveWindow.Close();
wordApp.Application.Quit(-1);
outcome = true;
}
else
{
Console.WriteLine("No Comments.");
document.ActiveWindow.Close();
wordApp.Application.Quit(-1);
outcome = false;
}
return outcome;
}
/// <summary>
/// An item was updated.
/// </summary>
public override void ItemUpdated(SPItemEventProperties properties)
{
commentscheck(properties);
}
}
}