Вот MSDN, объясняющее, что происходит: Как: представить контейнер STL / CLR из сборки
"Контейнеры STL / CLR, такие как list и map, реализованы как классы ref шаблонаПоскольку шаблоны C ++ создаются во время компиляции, два класса шаблонов, которые имеют абсолютно одинаковую сигнатуру, но находятся в разных сборках, на самом деле являются разными типами. Это означает, что классы шаблонов нельзя использовать за пределами границ сборки. "
Как яПоймите, ваш открытый класс пытается экспортировать шаблонную специализацию вектора, но он будет отличаться от внешней декларации того же вектора и никогда не будет совпадать.
Возможно, вы захотите изменить элемент myVector следующим образомthis (который компилируется для меня):
static cliext::vector<MyClass^>::generic_container ^myVector = gcnew cliext::vector<MyClass^>(3);
Другой вариант - не помечать ваш класс как 'public', чтобы компилятор не пытался сделать его пригодным для использования вне вашей сборки.
Также отмечу, что использование «static» для x и y кажется подозрительныме.Вы уверены, что хотите только один из них?