سؤال

تقنية إضافة إشارة إلى إمكانية التشغيل المتداخل COM Office في Visual Studio هو الذهاب إلى:

  1. المراجع
  2. إضافة مرجع
  3. حدد COM علامة التبويب
  4. حدد مكتبة كائنات Microsoft Office 11.0

و سحرية اسمه إشارة تظهر:

Microsoft.Office.Core

على Project.csproj الملف يظهر تفاصيل المرجعية:

<COMReference Include="Microsoft.Office.Core">
   <Guid>{2DF8D04C-5BFA-101B-BDE5-00AA0044DE52}</Guid>
   <VersionMajor>2</VersionMajor>
   <VersionMinor>3</VersionMinor>
   <Lcid>0</Lcid>
   <WrapperTool>primary</WrapperTool>
   <Isolated>False</Isolated>
</COMReference>

و المشروع هو دققت في مصدر عنصر التحكم وكل شيء على ما يرام.


ثم مطور مع Office 2007 يحصل المشروع من مصدر التحكم, ولا يمكن بناء عليه لأن مثل هذه المرجعية لا وجود لها.

أنه (أيلي) يتحقق بها .الملف csproj, حذف الإشارة إلى

Microsoft Office 11.0 Object Library

وإعادة يضيف COM كمرجع

Microsoft Office 12.0 Object Library

و سحرية اسمه إشارة تظهر:

Microsoft.Office.Core

على Project.csproj الملف يظهر تفاصيل المرجعية:

<COMReference Include="Microsoft.Office.Core">
  <Guid>{2DF8D04C-5BFA-101B-BDE5-00AA0044DE52}</Guid>
  <VersionMajor>2</VersionMajor>
  <VersionMinor>4</VersionMinor>
  <Lcid>0</Lcid>
  <WrapperTool>primary</WrapperTool>
  <Isolated>False</Isolated>
</COMReference>

و المشروع هو دققت في مصدر عنصر التحكم وكل شيء على ما يرام.


ثم مطور مع Office 2003 يحصل المشروع من مصدر التحكم, ولا يمكن بناء عليه لأن مثل هذه المرجعية لا وجود لها.

أنه (أيليس لي) يتحقق بها .الملف csproj, حذف الإشارة إلى

Microsoft Office 12.0 Object Library

وإعادة يضيف COM كمرجع

Microsoft Office 11.0 Object Library

و سحرية اسمه إشارة تظهر:

Microsoft.Office.Core

على Project.csproj الملف يظهر تفاصيل المرجعية:

<COMReference Include="Microsoft.Office.Core">
  <Guid>{2DF8D04C-5BFA-101B-BDE5-00AA0044DE52}</Guid>
  <VersionMajor>2</VersionMajor>
  <VersionMinor>3</VersionMinor>
  <Lcid>0</Lcid>
  <WrapperTool>primary</WrapperTool>
  <Isolated>False</Isolated>
</COMReference>

و المشروع هو دققت في مصدر عنصر التحكم وكل شيء على ما يرام.

ثم تم بناء المشروع ، الضغط على الأقراص المدمجة, و إرسالها إلى العملاء الذين لديهم Office 2007.

و كل شيء ليس جيدا.


في الأيام الخوالي (أيقبل .صافي dll الجحيم) ، نود الإشارة مكتب الكائنات باستخدام نسخة مستقلة ProgID, أي:

"Excel.Application"

الذي يحل على clsid من تثبيت Office على سبيل المثال

{00024500-0000-0000-C000-000000000046}    

من أي فئة هو ثم شيدت باستخدام استدعاء COM (اللغة-netural الزائفة رمز):

public IUnknown CreateOleObject(string className)
{
    IUnknown unk;

    Clsid classID = ProgIDToClassID(className);
    CoCreateInstance(classID, null, 
          CLSCTX_INPROC_SERVER | CLSCTX_LOCAL_SERVER, 
          IUnknown, out unk);

    return unk;
}

الأسئلة

1) ما هو المعتمدة تقنية لأتمتة تثبيت Office التطبيقات ؟

2) ما هي Office 2003 إمكانية التشغيل المتداخل الأساسية الجمعيات مفيدة ؟

3) إذا كنت تستخدم Office 2003 إمكانية التشغيل المتداخل الأساسية للجمعيات ، هل يجب أن يكون لديك office 2003 المثبتة ؟

4) إذا كنت بناء مع Office 2003 التجميعات إمكانية التشغيل المتداخل الأساسية هي بلدي العملاء مرتبطة مكتب 20003 إلى الأبد ؟

5) هل هناك أي Office 2007 إمكانية التشغيل المتداخل الأساسية الجمعيات?

6) إذا قمت بتثبيت Office 2007 إمكانية التشغيل المتداخل الأساسية للجمعيات هل يجب أن يكون لديك Office 2007 المثبتة ؟

7) ما هو الخطأ باستخدام معيار interop COM لدفع Excel, Word أو Outlook ؟ على سبيل المثال:

[ComImport]
[Guid("00024500-0000-0000-C000-000000000046")]
public class Excel
{
}

8) ما هو تحقيق عند واحد يضيف

  • المرجعية البنود على التبويب COM,
  • بدلا من استخدام [ComImport],
  • بدلا من استخدام Office 2007 إمكانية التشغيل المتداخل الأساسية الجمعيات?

9) يتم إضافة إشارة باستخدام التبويب COM متطابقة باستخدام Interop COM, إلا أنه يحتاج مكتبة نوع قبل أن تتمكن من رؤيته ؟

10) Office 2003 إمكانية التشغيل المتداخل الأساسية الجمعيات الوراء وإلى الأمام متوافق مع:- مكتب 14 - Office 2007 - Office 2003 - Office XP - Office 2000 - Office 97 - مكتب 95

إذا كان العميل و مطور, تثبيت نسخة جديدة من Office ، ما العمل ؟

11) هل يجب أن السفينة Office 2003 إمكانية التشغيل المتداخل الأساسية الجمعيات مع شركائنا في التطبيق ؟

12) هل العملاء تضطر إلى تثبيت Office 2003 إمكانية التشغيل المتداخل الأساسية الجمعيات قبل أن يتمكنوا من استخدام التطبيق ؟

13) إذا كان العميل يقوم بتثبيت Office 2003 إمكانية التشغيل المتداخل الأساسية للجمعيات هل يجب أن يكون مكتب المثبتة ؟

14) إذا كان العميل يقوم بتثبيت Office 2003 إمكانية التشغيل المتداخل الأساسية للجمعيات هل يجب أن يكون لديك Office 2003 المثبتة ؟

15) هل Office 2003 إمكانية التشغيل المتداخل الأساسية يجمع مجانا, lite, القابلة لإعادة إصدار من Office 2003

16) إذا التنمية بلدي آلة Office 2007, هل يمكنني استخدام Office 2003 PIAs وشحنها إلى العملاء مع تثبيت Office XP?

هل كانت مفيدة؟

المحلول 2

الجواب هو "نسخة المحلية" مهما الجمعية dll يمكنك الحصول على إمكانية التشغيل المتداخل.مرة واحدة لديك الجمعية dll في مجلد الإخراج ، إضافة إشارة إلى ذلك ، والتحقق من ذلك إلى عنصر تحكم مصدر.

الآن الجميع لديه المشار إليها الجمعية dll.

نصائح أخرى

نجاح باهر هذا هو عدد كبير من الأسئلة.أعتقد أنه في عام إذا كان التطبيق الخاص بك يستخدم PIAs ثم كنت على افتراض أن الجمهور المستهدف الخاص بك لديه بعض إصدار من Office مثبتا.PIAs سيتم تركيبها في GAC عندما يكون الهدف المستخدم بتثبيت Office.إذا لم يكن Office مثبتا ثم لماذا استهداف المكتب ؟

نعم, مكتب dlls هي الطريقة الصحيحة في أتمتة المكاتب.هناك قائمة من الجمعيات هنا, بما في ذلك بعض Office 2007.

هل تستخدم VSTO (Visual studio tools ل office)?

http://msdn.microsoft.com/en-us/office/aa905533.aspx

قديم الموضوع, و ربما معظم الناس سوف تكون سعيدة مع CopyLocal=صحيح, لكن هنا طريقة أخرى..استخدام سواء (أو أكثر..?التفكير Office 2010 إذا كانت المشكلة لا يزال موجودا..) المراجع في ملفات المشروع الخاص بك ، إما تجاهل أو قل MSBuild تجاهل "MSB3284" تحذير (المكتبة لم يتم العثور على).بحيث تشمل هذه في .الملف csproj:

<COMReference Include="Microsoft.Office.Core">
   <Guid>{2DF8D04C-5BFA-101B-BDE5-00AA0044DE52}</Guid>
   <VersionMajor>2</VersionMajor>
   <VersionMinor>3</VersionMinor>
   <Lcid>0</Lcid>
   <WrapperTool>primary</WrapperTool>
   <Isolated>False</Isolated>
</COMReference>

تليها:

<COMReference Include="Microsoft.Office.Core">
   <Guid>{2DF8D04C-5BFA-101B-BDE5-00AA0044DE52}</Guid>
   <VersionMajor>2</VersionMajor>
   <VersionMinor>4</VersionMinor>
   <Lcid>0</Lcid>
   <WrapperTool>primary</WrapperTool>
   <Isolated>False</Isolated>
</COMReference>

وأود أن تكون مهتمة لمعرفة ما إذا كان Microsoft توفر NuGet المكتبة لهذا فقط أن يحصل الجميع على نفس النهج.أعتقد أن من شأنه أن يزيل ضرورة الناس إلى البحث في الإنترنت عن هذه الإجابات...وأعتقد أن هذا سيكون ضد Microsoft Office رخصة لذلك هم الوحيدون إلى العرض.

راجع للشغل مع نسخ المحلية يجب أن تكون حريصا على عدم إعادة توزيع هذه المكتبة عن طريق الخطأ.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top