CA1017 ComVisible связанные ошибки с VS2010 StyleCop - PullRequest
0 голосов
/ 24 мая 2011

У меня появляется сообщение об ошибке CA1017 с StyleCop, говорящее, что мне нужно сделать его ComVisible false.

Error   18  CA1017 : Microsoft.Design : 
Because 'NationalInstruments.Labview.FPGA.ModelsimCommunicator.dll' exposes externally 
visible types, mark it with ComVisible(false) at the assembly level and then mark all 
types within the assembly that should be exposed to COM clients with ComVisible(true).

Затем я ставлю код [assembly: ComVisible(false)] перед самым верхним пространством имен.Тем не менее, я все еще получаю ту же ошибку вместе с другими сообщениями об ошибках.

Error   19  The type or namespace name 'ComVisible' could not be found (are you 
missing a using directive or an assembly reference?)    


Error   20  The type or namespace name 'ComVisibleAttribute' could not be found (are
you missing a using directive or an assembly reference?)    

Кажется, что VS2010 также не распознает это имя.

enter image description here

Что с этим не так?

1 Ответ

3 голосов
/ 24 мая 2011

ComVisibleAttribute определено в пространстве имен System.Runtime.InteropServices .

Так что вам необходимо:

  1. Полностью определите имя атрибута с помощью его пространства имен:

    [assembly: System.Runtime.InteropServices.ComVisible(false)]
    
  2. Добавьте директиву using в начало исходного файла, чтобы импортировать пространство имен для этого файла:

    using System.Runtime.InteropServices;
    

В будущем вы сможете получить Visual Studio, чтобы предупредить вас об этих вещах.Когда вы видите волнистую линию, обозначающую ошибку компилятора, найдите находящуюся рядом раскрывающуюся кнопку или нажмите Ctrl + . Должно появиться меню, указывающее возможные решения проблемы.В этом случае он предложил бы воспользоваться вариантом 1 или 2, указанным выше, и одним щелчком мыши выполнил бы все необходимые действия для вас.

(вышеупомянутое удивительное анимированное изображение было скопировано с здесь .)

...