Проблема DLL ClickOnce - PullRequest
       5

Проблема DLL ClickOnce

0 голосов
/ 10 февраля 2009

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

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

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

и мои DLL находятся в подкаталоге по этому пути.

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

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

Спасибо, Matt

Ответы [ 4 ]

2 голосов
/ 11 февраля 2009

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

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

0 голосов
/ 27 октября 2009

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

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

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

или

  • Опубликовать приложение с меньшим номером версии

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

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

0 голосов
/ 10 февраля 2009

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

Но нет ничего, что мешало бы вам запускать код в качестве exe-файла в локальной системе.

0 голосов
/ 10 февраля 2009

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

...