Winforms: где должны публиковаться сборки, которые идут с приложением - PullRequest
1 голос
/ 10 сентября 2009

Очень простое приложение Winforms, которое я хочу развернуть вручную. Могут ли все упомянутые сборки просто перейти в папку приложения или где они должны быть опубликованы? (В ASP.NET они могут находиться в папке \ bin). Я бы предпочел не помещать в GAC.

Ответы [ 3 ]

5 голосов
/ 10 сентября 2009

По умолчанию я указываю сборки, на которые есть ссылки, в той же папке, в которой развертываю приложение (или \ bin для ASP.NET), за исключением очень веской причины для развертывания в GAC.

1 голос
/ 10 сентября 2009

Вы можете использовать .NET probind, чтобы определить относительную папку, в которой приложение должно искать .dll при запуске. Вам нужно только добавить простой файл конфигурации с вашим приложением. Для простых приложений я развертываю исполняемый файл и файл конфигурации в корневом каталоге и помещаю необходимые библиотеки в подкаталог lib:

/
|-MyApp.exe
|.MyApp.exe.config
|-lib
   |-Lib1.dll
   |-Lib2.dll

Используйте эту ссылку из недавнего ответа, чтобы узнать, как создать файл конфигурации

0 голосов
/ 10 сентября 2009

Ответ Эрика Дж, вероятно, правильный, но есть причина опасаться размещения сборок в папке приложения: Windows 7. Я лично не сталкивался с этой проблемой, так как все еще в Vista Hell , но, по-видимому, в Windows 7 защищенная учетная запись администратора (которую вы обычно запускаете) не имеет доступа для записи ко всем папкам приложений - она ​​имеет доступ только для записи в папки приложений, которые были установлены этим пользователем. Таким образом, если ваше приложение было установлено пользователем Windows XP или Vista, а затем этот пользователь обновился до Windows 7, вашему защищенному администратору по умолчанию будет отказано в разрешении на запись в папку приложения (поскольку у него другой SID в новой версии Windows). ).

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

Подробнее см. в этой статье .

...