Несколько путей поиска для сборок, отсутствующих в GAC, при использовании REGASM & COM - PullRequest
0 голосов
/ 11 июля 2010

Я нахожусь в процессе создания сборки .NET, которая будет зарегистрирована для COM, чтобы на нее можно было ссылаться в Microsoft Excel VBA.

Сборка ссылается на стороннюю сборку .NET (которая содержитнекоторые полезные классы), которых нет в GAC, однако у меня есть проблема с развертыванием моей сборки, поскольку путь к сторонней сборке не всегда находится в одном и том же месте (это также зависит от локали пользователя)как то, как недавно была установлена ​​сторонняя сборка).

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

В идеале я хотел бы использовать раннее связывание в моей сборке, но если я это сделаю, и путь к сторонней сборке будет отличаться от ссылки в VisualStudio, то REGASM потерпит неудачу.

Я понимаю, что "Copy Local" (в VS) решит эту проблему,но поскольку сторонняя сборка иногда исправляется, то я не хочу хранить ее устаревшую версию в той же папке, что и моя сборка.

Есть ли способ обойти это, чтобы я нене нужно использовать «Копировать локальный»?Я полагаю, что я мог бы использовать какую-то динамическую загрузку сторонней сборки, но тогда все равно можно было бы использовать раннее связывание?(и будет ли работать REGASM?)

1 Ответ

0 голосов
/ 11 июля 2010

Почему бы не использовать «Локальное копирование» для первого использования и иметь подпрограмму при запуске приложения, которая проходит через список возможных местоположений, где может быть и переопределена более новая версия (или запланируйте переопределение, когда недоступно и т. Д.)локальная сборка, если это возможно.

Кроме того, вы можете захотеть дать пользователю возможность вручную указать место, откуда следует открывать dll, тогда вы всегда (или по запросу) проверяете наличие новых версий.

Другой аспект заключается в том, зачем вам обновлять новую сборку, если функциональность вашего приложения зависит от определенной версии, поскольку, если они изменили свое будущее или что-то, что они запустили, ваша программа потерпит неудачу из-за обновленияПросто мысль.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...