Развертывание приложения WPF с помощью сторонних DLL
Я был крайне разочарован, пытаясь развернуть созданное мною приложение C # / WPF, в котором есть ссылки на сторонние библиотеки DLL. Я создал папку в проекте, называетсяlib
где я разместил все эти библиотеки DLL. В VS2012 я добавил ссылки, перейдя в эту папку и выбрав все библиотеки DLL.Copy Local
установлен вtrue
для всех. Все хорошо, когда я собираю и запускаю, но когда я выбираю публикацию и создаю установщик OneClick, все не так гладко. Во время мастера публикации я установил установку с диска и никогда не проверял наличие обновлений. Я беру эту папку, помещаю ее на флэш-диск, подключаю к другому компьютеру, запускаю установку, и она выдает исключение. Я верю, что знаю, что происходит, но я не могу понять, как упаковать это, чтобы правильно развернуть.
Одна из моих библиотек DLL - это оболочка C # для библиотеки DLL, предназначенной для проекта C ++. Мы скажем,Application
требуетDLL1
а такжеDLL1
требуетDLL2
. DLL2
не может быть добавлен в качестве ссылки в проекте, потому что не является.NET
DLL.DLL1
требуетDLL2
быть в той же папке, чтобы забрать его. я используюCefSharp который оборачиваетChromium Embedded Framework.
Я попытался разместить необходимые библиотеки DLL для CefSharp.dll вpublish/Application Files
каталог, но это не сработало. Я заметил, что все библиотеки DLL из VS2012 имеют.deploy
Расширение на них, я даже пошел и добавил это расширение, чтобы посмотреть, сканирует ли оно это, но оно также не работает. Это мой первый раз, когда я занимаюсь разработкой и развертыванием для приложения Windows, и все учебники по MSDN или сообщениям в блоге, которые я прочитал, похоже, не охватывают этот случай, и я не вижу никаких других опций в диспетчере развертывания, чтобы справиться с этими типы дел.
Если это помогает, выдается код исключения:CLR20r3
Когда я ловлю и отображаю исключение, вся информация, которую я предоставляю, в основном говоритCefSharp.dll or one of it's dependencies cannot be loaded
, Который я получил раньше, когдаDLL2
не был в той же папке, что иDLL1
.
Кто-нибудь может помочь с развертыванием VS2012 в такой ситуации?
Заранее спасибо!
Изменить: Обновление информации
Я пытался отправить отладочную версию сборки на тестовый компьютер без установленной Visual Studio. При строительстве дляCefSharp
или любой другой C ++ RuntimeDLL
, он будет искать все версии отладкиDLL
которые обычно имеют то же имя, но с добавленной буквой «d» в конце. Как упоминалось ниже, отладочная версия среды выполнения C ++ не распространяется. Не то, чтобы вы не могли добавить эти вручнуюDLLs
к вашему проекту и установите их какCopy Always
, но это вроде хакерская работа. Я начал новый проект с нуля, добавил все версии Release библиотек DLL, собрал, и все было хорошо.