2014-09-10 3 views
0

Я пытаюсь сделать установку для приложения C# в .NET 3.5.C# Setup с внешней DLL

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

Я не могу добавить DLL к установке в качестве файла, появляется сообщение об ошибке. («Операция не может быть завершена»)

Error Window

Если я добавляю DDLS в папку проекта, а затем использовать их в качестве контента, я получаю «неисправимая ошибка сборки» при создании проекта.

Как я могу добавить эти DLL? Мне все равно, но мне нужны они в папке проекта.

Спасибо.

PS: Я использую стандартную установку для VisualStudio 2008

+0

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

+0

Как вы это сделаете? Где я должен хранить библиотеки DLL перед установкой? –

+0

Кроме вашего установочного файла. Вы также можете их закрепить. Но, возможно, есть лучший способ пойти. –

ответ

0

С помощью Visual Studio, когда вы добавляете внешний DLL в качестве ссылки в проекте, он будет автоматически добавлен к установке.

+0

Я не могу добавить эти DLL в качестве ссылки в свой проект, потому что они .NET 4.5, а мой проект - .NET 3.5. Если я их добавлю, они «не найдены» -> Поле пути пуст. –

0

Прежде всего, нет ли способа найти более раннюю версию ассемблера для сборки .NET 3.5? Или, если у вас есть доступ к источнику, удалите/измените код .NET 4.5 и перекомпилируйте?

В противном случае вы можете попытаться обернуть вас dll через интерфейс COM, как описано here. В этой статье используется dll .NET 4, используемая с .NET 2.0, но механизм все равно должен работать в вашей конфигурации. Я сам использовал его для 2.0/4.0 interop.

Here - еще один трюк, который вы можете попробовать.

+0

Это почти невозможно. Я не уверен, что буду тратить столько времени на просмотр кода. В этом проекте используется несколько dll. И единственное, что мне нужно, это выполнение exe. Я никогда не думал, что было бы так сложно включить файл как «ФАЙЛ» в настройку без появления ошибок. –

+0

Ну, вы можете попробовать использовать другой трюк (см. Мой обновленный пост). Это не сработало для меня с VS2012, но это стоит попробовать. –

0

Учтите, что в любом случае вам понадобится .NET 4.5, установленный на целевом компьютере, чтобы работать. Таким образом, вы можете переместить свой проект с 3,5 до 4,5. Я понимаю, что вы используете VS2008, который не имеет .NET 4.5, но вы можете использовать экспресс (бесплатно) издание Visual Studio здесь ->Microsoft Download Page

0

Я решил эту проблему, используя простой трюк:

В ошибки поступали только из DLL, написанных на .NET 4.5. Исполняемый файл (.exe) не вызывал ошибок. Я сделал, чтобы упаковать все DLL в exe с помощью инструмента ILMerge.

Затем я добавил файл .exe в библиотеку, и все работало как шарм.

ILMerge download site (Microsoft)

Смежные вопросы