Если вы хотите получить имя класса из метода класса, class.name
или self.class.name
не будут работать. Они просто выведут Class
, так как класс класса - Class
. Вместо этого вы можете просто использовать name
:
module Foo
class Bar
def self.say_name
puts "I'm a #{name}!"
end
end
end
Foo::Bar.say_name
вывод:
I'm a Foo::Bar!
Почти наверняка Team City запускает процесс сборки как локальная система в неинтерактивном режиме, а не как пользователь, который действительно имеет доступ и возможность захвата графического устройства. Я знаю, что у меня были проблемы даже с попыткой пакетной обработки текстур через интерфейс удаленного рабочего стола, потому что DirectX не может захватить графическое устройство.
Решение может заключаться в том, чтобы посмотреть, предлагает ли Team City вам возможность запросить запуск его построителя как зарегистрированный пользователь, а не как локальная система или как услуга, хотя я не могу сказать вам, что это вообще возможно в Team City.
У меня нет решения, но я думал об этом.
Ошибка: D3DERR_INVALIDCALL, поэтому я думаю, что устройство по какой-то причине в это время недоступно .
1) На машинах, на которых выполняется сборка, установлен DirectX / видеокарта? Я предполагаю, что да, поскольку для XNA требуется карта с шейдерами, но TeamCity - это дистрибутив сборки, так что, может быть, он работает на машине без нее?
2) Может быть, TeamCity заставляет слишком много устройств Direct3D быть создано на одной машине / процесс (полное предположение)?
Правильно ли компилируемые файлы модели используют текстуры или это просто геометрические данные? У меня такое чувство, что конструктору контента не нужен доступ к DirectX для построения моделей, но нужен для данных текстуры. Можете ли вы создать что-нибудь еще, для чего требуется доступ к Direct3D? Можете ли вы создать проект с помощью TeamCity, у которого есть только одна текстура в папке содержимого?
Я не уверен, что это сработает, но можно ли получить дополнительную информацию, запустив DirectX в режиме отладки и просмотрев результат?
Надеюсь, это немного поможет.
Чтобы удалить строку из JTable, вам необходимо удалить целевую строку из базовой TableModel . Если, например,