Не удается найти замену для атрибута EntryPoint в .net 4.7 - PullRequest
0 голосов
/ 03 января 2019

Поэтому я пытаюсь обновить макрос solidoworks с .net 3.5 до .net 4.7

И когда я собирался это сделать, я обнаружил, что существует метод с именем EntryPoint(0), который в основном является отправной точкой для макрокода.

Добавление кода ниже:

using Microsoft.VisualStudio.Tools.Applications.Contract;
using Microsoft.Office.Tools.Excel;
using Microsoft.Office.Tools;
using SolidWorks;
using SolidWorks.Interop.sldworks;
using System;
using static System.Reflection.MethodInfo; 
using System.Runtime.InteropServices;
using System.AddIn.Contract.Collections; 
using System.ComponentModel;
using System.Diagnostics;
using System.Management;
using System.Runtime;
using System.Runtime.InteropServices.ComTypes;
using System.Windows.Forms;

namespace GoPublish.csproj
{
    public sealed class SolidWorksMacro : OuterDispProxy
    {
      [EntryPoint(0)]
      public SldWorks swApp;

      [DllImport("ole32.dll")]
      private static extern int CreateItemMoniker([MarshalAs(UnmanagedType.LPWStr)] string lpszDelim, [MarshalAs(UnmanagedType.LPWStr)] string lpszItem, out IMoniker ppmk);

      [DllImport("ole32.dll")]
      private static extern int GetRunningObjectTable(uint reserved, out IRunningObjectTable pprot);

Я не могу найти замену в .net 4.7

Есть предложения, как мне это сделать?

1 Ответ

0 голосов
/ 04 января 2019

Класс EntryPointAttribute определен в Microsoft.VisualStudio.Tools.Applications.Contract.dll, который является частью VSTA (Инструменты Visual Studio для приложений).Я не слишком знаком с этим, но я понимаю, что это облегченная версия VS для разработки макросов / плагинов.

Вы определенно можете создавать макросы SolidWorks без этой библиотеки DLL, но существует множество способов создания макросов, так что, возможно, с вашей конкретной установкой вам это понадобится.

Я предполагаю, что вы использовали VSTA для своей версии 3.5 и переключились на VisualStudio для 4.7, и это ваша настоящая проблема.

.net 4.7 полностью поддерживает сборку библиотек для предыдущих версий, поэтому вы можете попробовать добавить ссылку вручную.Здесь я смог найти файл Microsoft.VisualStudio.Tools.Applications.Contract.dll: C: \ Windows \ assembly \ GAC_MSIL \ Microsoft.VisualStudio.Tools.Applications.Contract \ 8.0.0.0__b03f5f7f11d50a3a \ Microsoft.VisualStudio.o.Contract.dll

...