1.有一個Office 2003主互操作程序集(PIA)可再發行組件是Microsoft Windows Installer程序包,其中包含Microsoft Office 2003產品的主互操作程序集,您可以從here包括組件需要
2.You可以設置真正爲這個組件項目中的「複製本地」鍵引用的屬性,在這種情況下,它會被複制到你的項目的輸出文件夾
3 。你並不需要它與MS Office應用程序一起工作,但它使它更容易。下面是如何可以打開演示文稿,而不互操作類的例子
Type officeType = Type.GetTypeFromProgID("PowerPoint.Application");
object officeInstance = Activator.CreateInstance(officeType);
// set visible
object value = -1;
officeType.InvokeMember("Visible", BindingFlags.SetProperty, null, officeInstance, new object[] { value });
// open presenation
object objTrue = -1;
object objFalse = 0;
object fileNameObj = presentation_file_name;
object documents = officeType.InvokeMember("Presentations", BindingFlags.GetProperty, null, officeInstance, null);
documents.GetType().InvokeMember("Open", BindingFlags.InvokeMethod, null, documents, new object[] { fileNameObj, objTrue, objFalse, objTrue });
沒有測試這個確切的一個,但像他這樣平穩正常工作對我來說,對於
感謝哥們。動態加載程序集,工作正常。但我的問題是,在目標機器上我沒有GAC文件夾。如果我安裝了PIA,它可以與兩個辦公版本一起使用。我不想用我的應用程序分發Microsoft程序集,因爲它可能會導致潛在的威脅。並且在每臺目標機器上安裝PIA是不可行的。 – 2009-12-29 05:58:29
我猜你在這裏死了;在目標計算機上的GAC文件夾中沒有需要的程序集,並且您不希望\不能安裝它們,因此#1不起作用。您也不想將互操作程序集與您的應用程序捆綁在一起;這意味着#2也不適用。 – 2009-12-29 17:51:04