Ответ 1
У вас есть несколько потоков, вызывающих эту проблему. Если это так, найдите их и заставьте их STA
trd = New Threading.Thread(AddressOf ThreadTask)
trd.IsBackground = True
trd.SetApartmentState(ApartmentState.STA)
У нас есть проект установки в решении Visual Studio (Другие типы проектов → Настройка и развертывание → Проект установки). Этот проект имеет другой проект типа библиотеки с классом установки с именем InstallationCore, например, с выходом проекта. В действии пользователя я вызываю, чтобы установить и удалить функции установщика InstallationCore.
У InstallationCore есть формы окон для взаимодействия с пользователем. Там, в формах, я использую функцию Drag and Drop для перетаскивания текста из Tree View в текстовое поле.
Но в строке:
txbUserName.AllowDrop = true;
Я получаю ошибку отладчика JIT:
Произошло необработанное исключение
Не удалось выполнить регистрацию DragDrop
System.InvalidOperationException: регистрация DragDrop не удалась
И длинная трассировка стека после этого.
Важно сказать, что когда я запускал функцию Installer из тестового проекта, ошибка не возникала, и все работало нормально. Ошибка возникает только при запуске пакета .msi.
Любые предложения?
У вас есть несколько потоков, вызывающих эту проблему. Если это так, найдите их и заставьте их STA
trd = New Threading.Thread(AddressOf ThreadTask)
trd.IsBackground = True
trd.SetApartmentState(ApartmentState.STA)
Я исправил эту проблему, удалив каталог bin.
Попробуйте очистить каталог BIN.
Пожалуйста, удалите всю папку Obj из каталога решений и Rebuild. Помните, что не стройте только перестроить. Поскольку Build только готовит новые изменения в последней успешной сборке. Поэтому, пожалуйста, используйте опцию Re-Build.
Сборка: - создавать файлы и заменять или перенастраивать все файлы, независимо от того, присутствуют ли они в папке bin или нет.
Re-Build: - Использовать существующий файл, если нет изменений.
Очистить: - Удаляет все файлы из местоположения корзины.
Рекомендуется Clean, а затем Build, если вам не нужны ссылки и сборка связанных файлов, всегда используйте повторную сборку.
Кроме того, в RUN (кнопка Windows + R) перейдите в папку "Временная папка" (введите% temp% в RUN), есть папка, связанная с файлами .NET Temporary, попробуйте удалить ее, если она не удалена затем закройте Visual Studio, а затем попробуйте удалить его. Это создается каждый раз, когда мы создаем или перестраиваем приложение, и иногда оно создает проблемы.