Развертывание приложения 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, собрал, и все было хорошо.

Ответы на вопрос(6)

Ваш ответ на вопрос