2009-02-10 1 views
0

Я разработал некоторые библиотеки подключаемых модулей C# в VS2008, которые развернуты вместе с чужим приложением. Они используют ClickOnce для их развертывания, и я пытаюсь сделать что-то нестандартное, я полагаю.Проблема с ClickOnce DLL

На одной из машин, где установлено приложение и мои DLL, я хотел бы вручную заменить некоторые из моих DLL для проверки исправления.

приложение находится в C: \ Documents и Settings \ testsystem \ Local Settings \ Apps \ 2.0 \ blahblahblah ... длинный неприятный путь \

и мои библиотеки DLL расположены в подкаталог этого пути.

Мой тестер взял мои DLL-файлы и поместил их в этот подкаталог, но он появляется на выходе Trace, который он отправляет мне, что на самом деле работает старая версия DLL. У меня был тестер, проверяющий, что DLL находятся в подкаталоге, а журнал трассировки показывает правильный путь, указывающий, что приложение запущено из этого места, но вывод Trace не из DLL, который я ему отправил.

В настоящее время все элементы развертывания ClickOnce являются для меня магией эльфов. Не похоже, что он перезаписывает мою новую DLL, но, конечно же, она не запускает версию, которую я ожидаю, чтобы она запускалась. У кого-нибудь есть идеи?

Спасибо, Matt

ответ

2

Вы уверен, что у вас есть правильная директория? Структура каталогов с однократной записью немного сложна, и DLL можно дублировать несколько раз. Она не всегда вытаскивает DLL из того места, где вы ожидаете, а также может вытаскивать DLL из GAC, если кто-то их помещает

Попробуйте запустить procexp, ищите свое приложение и изучите ручки, которые он держит. Это скажет вам правильный путь к соответствующим DLL.

+0

Хороший вопрос, Роберт. Это был расстраивающий день, и я использовал свой мозг (и процекс, как я часто использую), а не позволял ситуации получить лучшее из меня ... ну, вы знаете. Благодарю. – itsmatt

0

ли публикации обновления на ClickOnce приложение с следовых DLL быть из вопроса для вас в этом случае? Это был бы самый простой способ сделать магию в clickonce.

+0

Да, к сожалению, это не вариант. – itsmatt

0

А как насчет простой установки версии, созданной локально (не кликается). Очевидно, что если вы пытаетесь устранить ошибки разрешений, это не поможет :(.

Но нет ничего, что не позволяет вам запускать код как ех на локальной системе.

0

С странно-обходной шляпе, вы можете:

  • Опубликовать приложение под другим именем и есть тестер установить эту версию.

Это пространство имен для приложения, которое должно измениться, но, пожалуйста, обновите также имя приложения ClickOnce, иначе вы будете в растерянности.

или

  • Публикация приложения с более низким номером версии

Я должен сказать, что я не уверен на 100%, если это будет работать, но если вы публикуете его с более низким числом, ваши другие клиенты не должны получать обновления, но тестер должен будет удалить, затем установить и получить старую версию.Остерегайтесь, однако, вы хотели бы вернуться к реальной версии после того, как тестер установил тестовую версию, а затем тестер должен будет сказать «нет», чтобы устанавливать обновление каждый раз, когда он запускает приложение.

Я бы определенно пошел на публикацию под другим именем, и у вас будет версия для всех целей тестирования.

 Смежные вопросы

  • Нет связанных вопросов^_^