Как вывести программу из visual studio в exe
Последнее обновление: 02.06.2012
Что делать, если не установлена Visual Studio, но так хочется что-нибуль скомпилировать.
Для начала напишем в любом текстовом редакторе простое приложение и сохраним его в файл HelloWorld.cs:
Теперь скомпилируем и запустим его.
Как скомпилировать CPP в EXE
Допустим, путь в командной строке установлен на текущий каталог нашего файла HelloWorld.cs. Тогда введем в командную строку следующую команду (в данном случае у меня установлен 4-й фреймворк в папке v4.0.30319):
Если ошибок при компиляции не возникло, то в одном каталоге с HelloWorld.cs мы увидим скомпилированный файл HelloWorld.exe.
Параметры компиляции
Компилятор может принимать следующие выходные параметры:
Присваивает имя выходной сборки. По умолчанию присваивается то же имя, что и у файла кода cs
Создает консольное приложение. Используется по умолчанию
Позволяет создать библиотеку dll
Позволяет создать графическое приложение. При этом консоль скрывается.
Позволяет создать модуль
Теперь создадим простейшее графическое приложение:
Скомпилируем его с помощью строки:.
И после запуска мы увидим нашу форму. Если бы мы не использовали target:winexe, то также скомпилировали бы графическое приложение, только тогда при запуске была видна также и консоль.
При компиляции у нас может быть ситуация, когда у нас несоклько исходных файлов, и нам нужно создать из них одно приложени. Тогда все эти файлы либо перечисляются при компиляции (csc.exe WindowWorld.cs File1.cs File2.cs File3.cs), либо если надо включить все файлы текущего каталога, то можно использовать следующую запись: .
Также при компиляции может возникнуть необходимость включить ссылку на другую сборку. В предыдущем примере использовались ссылки из сборки System.Windows.Forms.dll. Однако все ссылки на нее, как и на еще несколько распространенных сборок, компилятр включает по умолчанию. Ссылки на большинство других сборок придется включать с помощью записи типа:. Если нужно включить несколько сборок, то они перечисляются друг за другом через точку с запятой:
csc.exe /reference:System.Windows.Forms.dll;System.Drawing.dll WindowWorld.cs
Как скомпилировать файлы C в исполняемый файл (.exe)?
Выберите букву с которой начинается название dll которую вы ищите:
Нужна помощь в установке cl.dll?
Администрация сайта не несет ответственности за ваши действия
В Windows x64 необходимо поместить файл в директорию
Проблемы с установкой? Прочтите рекомендации по установке DLL файлов
Ошибки cl.dll
Наиболее распространенные ошибки связанные с файлом.
С этим файлом скачали
Первая программа в Visual Studio
Последнее обновление: 28.08.2017
В центральной части окна в качестве типа проекта выберем Empty Project, а внизу окна в поле для имени проекта дадим проекту имя HelloApp и нажмем на ОК для создания проекта.
Затем нам откроется окно для добавления нового элемента:
Здесь нам надо выбрать пункт C++ File(.cpp), а внизу окна укажем для файла имя Hello.cpp. Как правило, исходные файлы на C++ имеют расширение .сpp.
После добавления файла изменим опции проекта. Для этого перейдем к пункту меню Project -> Properties:
И в открывшемся окне свойств проекта в левой части перейдем к секции Linker ->System и далее для поля SubSystem установим значение Console(/SUBSYSTEM:CONSOLE), выбрав нужный элемент в списке:
После добавления файла проект будет иметь следующую структуру:
Вкратце пробежимся по этой структуре. Окно Solution Explorer содержит в решение. В данном случае оно называется HelloApp. Решение может содержать несколько проектов.
как скомпилировать cpp в exe
External Dependencies: отображает файлы, которые используются в файлах исходного кода, но не являются частью проекта
Header Files: предназначена для хранения заголовочных файлов с расширением .h
Resource Files: предназначена для хранения файлов ресурсов, например, изображений
Source Files: хранит файлы с исходным кодом
Теперь собственно создадим первую программу и определим в файле Hello.cpp простейший код, который будет выводить строку на консоль:
Здесь использован весь тот код, который был рассмотрен в предыдущих темах про компиляцию с помощью g++.
Теперь запустим программу. Для этого в Visual Studio нажмем на сочетание клавиш Ctrl+F5 или выберем пункт меню Debug -> Start Without Debugging:
После этого на жестком диске в проекте в папке Debug можно увидеть скомпилированный файл exe, который мы можем запускать независимо от Visual Studio:
посмотреть его можно только отладчиком или дизассемблером.. .
The Codeby
ООО Кодебай
Как изменить код программы, если потерян исходник
При нажатии на кнопку “Чтение” из файла 1.txt считываются и выводятся все строки в окно элемента управления textBox, а при нажатии на кнопку “Запись” данные из текстового поля сохраняются в файле 2.txt
Для хранения путей в программе используются две текстовых переменных: filePathIn и filePathOut
Прошёл год, как программа была написана и отдана заказчику, но вдруг ему потребовалось изменить имя папки, в которой должны храниться оба файла, c 123 на Text. Задача простая, но прошло уже много времени, и исходник был потерян, что делать в такой ситуации?
Полученный в результате компиляции файл (сборка) содержит внутри себя метаданные, манифест, код на языке IL (MSIL).
Метаданные — описывают типы данных и их члены
Манифест описывают саму сборку
MSIL код, полученный в результате компиляции файла исходного кода
То есть перед вами тот же исходник, только в другом формате. И для того, чтобы поработать с ним, Вам понадобиться специальный инструмент, который позволяет просматривать и редактировать данные внутри сборки.
Для удобства работы создадим отдельную папку, например: ”c:
ewasm” и поместим в неё файл TextEdit.exe
Затем в меню “Пуск” открываем папку: «Visual Studio Tools»
Запускаем командную строку разработчика
Откроется консоль, вводим первую команду: ildasm. Для выполнения команды нажмите клавишу Enter.
Появиться главное окно программы.
Переместим файл сборку TextEdit.exe в окно дизассемблера ILASM, в результате отобразиться её внутреннее содержимое.
Убедимся, что в ней содержатся нужные нам данные (пути к файлам).
Два поля на месте, теперь взглянем на метаданные.
Для доступа к метаданным Вы так же можно использовать сочетание горячих клавиш: Ctrl+M. Затем с помощью кнопки Find, найдём имя одного из файлов.
Как видно присутствуют оба. Пути найдены, и теперь их нужно изменить, но все данные, в текущий момент, доступны только для просмотра, и изменить их в самой дизассемблере нельзя, поэтому воспользуемся второй возможностью данной программы и выгрузим содержимое сборки в файл.
Выберите пункт меню File -> Dump
Появится меню. В данном примере, все пункты меню оставим без изменений и просто нажмём кнопку OK.
Появится диалоговое окно
Выберем ранее созданную папку “newasm”, затем укажем имя и тип файла и нажмём на кнопку “Сохранить”
В результате в папке “newasm” должно появиться несколько новых файлов
Закрываем окно ildasm, а так же удаляем файл Textedit.exe, больше он нам не понадобиться. Теперь нас интересует полученный файл texted.il и для начала откроем его любым текстовым редактором, например блокнотом.
Снова воспользуемся поиском (Ctrl+F)
Так же видим найденные строки, которые содержат пути к файлам.
Изменим текущее имя папки 123 на новое название Text, для обоих файлов
Сохраняем внесённые изменения и закрываем блокнот.
Изменения внесены и теперь нужно преобразовать файл txted.il обратно в исполняемый файл (.exe) Для этого нам понабиться второй инструмент ILASM, ассемблер, который так же входит в состав пакета SDK и не требует отдельной установки.
Возвращаемся в консоль
Вводим вторую команду:
Первый параметр: /exe — указывает компилятору, что на выходе мы хотим получить файл с расширением .exe. Затем указываем файл, который содержит MSIL-код. С помощью второго параметра /output — указываем имя и расширение нового файла.
Вот таким не сложным способом можно выйти из данной ситуации, при этом не имея исходника под рукой.
Вложения
The Codeby
ООО Кодебай
admin
Пятница на 10:09
Программа (файл) на каком языке написана?
Иван
Суббота на 10:09
Добрый день. Такая же ситуация. Пытаюсь открыть файл exe в редакторе LD DASM у меня появляется ошибка «отсутствует допустимый заголовок CLR поэтому дизассемблирование невозможно». Файл написан на Delphi.
В дельфи сборка не содержит CLR заголовок и код, если не ошибаюсь, сразу преобразуется в машинный.
Иван
Понедельник на 12:09
А как-то нормально можно посмотреть код, если есть уже окончательный exe и несколько dll проекта?
admin
Понедельник на 09:09 ПП
Что значит «нормально посмотреть код» ?
Иван
Среда на 03:09 ПП
Ну чтобы взять код себе в другой проект
admin
Четверг на 11:09
Есть вроде какие-то, но не помню названия, потому что не использую их.
Анатолий
Четверг на 12:02 ПП
Можете, помочь как я хочу переписать лаунчер для игры, что бы изменить проверку файлов но не могу никак открыть его. Пробывал через ресторатор 2007 но оно не может прочитать пату файлов точнее отобразить язык.
Если у вас есть исходный код, лучше всего импортировать код в проект Visual Studio. If you have the source code, the best approach is to import the code into a Visual Studio project. Затем запустите отладочную сборку приложения. Then, run a debug build of the app.
Чтобы создать новый проект EXE для существующего приложения To create a new EXE project for an existing app
В Visual Studio выберите файл > откройте > проекта. In Visual Studio, select File > Open > Project.
В Открытие проекта выберите все файлы проекта, если еще не выбран, в раскрывающемся списке рядом с полем имя файла. In the Open Project dialog box, select All Project Files, if not already selected, in the dropdown next to File name.
Перейдите к .exe файл, выберите его и выберите откройте. Navigate to the .exe file, select it, and select Open.
Файл появится в новой, временные решения Visual Studio. The file appears in a new, temporary Visual Studio solution.
Начните отладку приложения, выбрав команду выполнения, например начать отладку, из Отладка меню. Start debugging the app by selecting an execution command, like Start Debugging, from the Debug menu.
Чтобы импортировать приложение в существующее решение Visual Studio To import an app into an existing Visual Studio solution
В Открытие проекта выберите все файлы проекта, если еще не выбран, в раскрывающемся списке рядом с полем имя файла. In the Open Project dialog box, select All Project Files, if not already selected, in the dropdown next to File name.
Перейдите к .exe файл, выберите его и выберите откройте. Navigate to the .exe file, select it, and select Open.
Файл отображается как новый проект в текущее решение. The file appears as a new project under the current solution.
С новым файлом выбран, начните отладку приложения, выбрав команду выполнения, например начать отладку, из Отладка меню. With the new file selected, start debugging the app by selecting an execution command, like Start Debugging, from the Debug menu.
Прежде чем мы сможем написать нашу первую программу, нам нужно научиться создавать новые программы в нашей интегрированной среде разработки (IDE). В этом уроке мы расскажем, как это сделать, а вы скомпилируете и запустите свою первую программу!
Проекты
Чтобы написать программу на C++ внутри IDE, мы обычно начинаем с создания нового проекта (мы покажем вам, как это сделать чуть позже). Проект – это контейнер, в котором хранятся все файлы исходного кода, изображения, файлы данных и т.д., которые необходимы для создания исполняемого файла (или библиотеки, веб-сайта и т.д.), который вы сможете запускать или использовать. Проект также сохраняет различные настройки IDE, компилятора и компоновщика, а также запоминает, где вы остановились, чтобы позже, при повторном открытии проекта состояние IDE можно было восстановить с того места, где вы остановились. Когда вы решите скомпилировать свою программу, все файлы .cpp в проекте будут скомпилированы и слинкованы.
Каждый проект соответствует одной программе. Когда вы будете готовы создать вторую программу, вам нужно будет либо создать новый проект, либо перезаписать код в существующем проекте (если вы не хотите его оставлять). Файлы проекта обычно специфичны для конкретной IDE, поэтому проект, созданный в одной IDE, необходимо будет заново создать в другой IDE.
Лучшая практика
Создавайте новый проект для каждой новой программы, которую вы пишете.
Консольные проекты
Когда вы создаете новый проект, вас обычно спрашивают, проект какого типа вы хотите создать. Все проекты, которые мы создадим в этом руководстве, будут консольными. Консольный проект означает, что мы собираемся создавать программы, которые можно запускать из консоли Windows, Linux или Mac.
Ниже показан скриншот консоли Windows:
Рисунок 1 – Консоль Windows
По умолчанию консольные приложения не имеют графического пользовательского интерфейса (GUI), они выводят текст на консоль, считывают ввод с клавиатуры и компилируются в автономные исполняемые файлы. Они идеально подходят для изучения C++, поскольку сводят сложность к минимуму и обеспечивают работу в самых разных системах.
Не беспокойтесь, если вы никогда раньше не пользовались консолью или не знаете, как получить к ней доступ. Мы будем компилировать и запускать наши программы через наши IDE (которые при необходимости будут вызывать консоль).
Рабочие пространства / решения
Когда вы создаете новый проект для своей программы, многие IDE автоматически добавляют ваш проект в «рабочее пространство» («workspace» или «solution») (термин зависит от IDE). Рабочее пространство – это контейнер, который может содержать один или несколько связанных проектов. Например, если вы пишете игру и хотите иметь отдельные исполняемые файлы для одиночной и многопользовательской игры, вам нужно будет создать два проекта. Обоим этим проектам не имело бы смысла быть полностью независимыми – в конце концов, они являются частью одной игры. Скорее всего, каждый из них будет настроен как отдельный проект в рамках одного рабочего пространства.
Хотя вы можете добавить несколько проектов в одно рабочее пространство, мы обычно рекомендуем создавать новое рабочее пространство для каждой программы, особенно во время обучения. Это проще, и вероятность того, что что-то пойдет не так, меньше.
Написание вашей первой программы
Традиционно у программистов, пишущих на новом языке, первой программой является печально известная программа hello world, и мы не собираемся лишать вас этого опыта! Вы нас потом поблагодарите. Может быть.
Создание проекта в Visual Studio 2019
Когда вы запустите Visual Studio 2019, вы должны увидеть диалоговое окно, которое выглядит следующим образом:
Рисунок 2 – Диалоговое окно «Начало работы» Visual Studio 2019
Выберите Создание проекта (Create a new project).
После этого вы увидите диалоговое окно, которое выглядит следующим образом:
Рисунок 3 – Visual Studio 2019: диалоговое окно создания нового проекта
Если вы уже открыли предыдущий проект, вы можете открыть это диалоговое окно через меню Файл (File) → Создать (New) → Проект (Project).
Выберите Мастер классических приложений Windows (Windows Desktop Wizard) и нажмите Далее (Next). Если вы этого не видите, то вы, вероятно, при установке Visual Studio забыли выбрать установку Desktop development with C++. В этом случае вернитесь к уроку «0.6 – Установка интегрированной среды разработки (IDE)» и переустановите Visual Studio, как было показано (примечание: вместо полной переустановки вы можете запустить установщик Visual Studio и изменить существующую установку, чтобы добавить поддержку C++).
Далее вы увидите диалоговое окно, которое выглядит следующим образом:
Рисунок 4 – Диалоговое окно настройки нового проекта Visual Studio 2019
Замените существующее имя проекта на HelloWorld .
Рекомендуется также установить флажок «Поместить решение и проект в одном каталоге» (Place solution and project in the same directory), поскольку это сокращает количество подкаталогов, создаваемых с каждым проектом.
Нажмите Создать (Create), чтобы продолжить.
Наконец, вы увидите последнее диалоговое окно:
Рисунок 5 – Диалоговое окно параметров проекта Visual Studio 2019
Убедитесь, что тип приложения установлен как Консольное приложение (.exe) (Console Application (.exe)), и что параметр Предкомпилированный заголовок (Precompiled Header) не выбран. Затем нажмите ОК.
Вы создали проект! Чтобы продолжить, перейдите в раздел Обозреватель решений Visual Studio ниже.
Создание проекта в Visual Studio 2017 или в более ранней версии
Чтобы создать новый проект в Visual Studio 2017 или более ранней версии, выберите меню Файл (File) → Создать (New) → Проект (Project). Появится диалоговое окно, которое выглядит примерно так:
Рисунок 6 – Диалоговое окно «Новый проект Visual Studio 2017»
Сначала убедитесь, что слева указан Visual C++. Если вы не видите Visual C++, возможно, вы забыли выбрать установку поддержку Desktop development with C++ при установке Visual Studio. В этом случае вернитесь к уроку «0.6 – Установка интегрированной среды разработки (IDE)» и переустановите Visual Studio, как было показано (примечание: вместо полной переустановки вы можете запустить установщик Visual Studio и изменить существующую установку, чтобы добавить поддержку C++).
Если вы используете Visual Studio 2017 v15.3 или новее, под Visual C++ выберите Windows Desktop, а затем выберите Windows Desktop Wizard в главном окне.
Если вы не видите вариант с Windows Desktop, возможно, вы используете старую версию Visual Studio. Отлично. Вместо этого выберите Win32, а затем Win32 Console Application в главном окне.
Внизу в поле Name введите название своей программы (замените существующее имя на HelloWorld ). В поле Location вы можете при желании выбрать другое место для размещения вашего проекта. Пока подойдет и значение по умолчанию.
Нажмите ОК. Если вы используете старую версию Visual Studio, запустится мастер приложений Win32. Нажмите Next.
На этом этапе вы должны увидеть диалоговое окно мастера, которое выглядит примерно так (более старые версии Visual Studio используют другой стиль, но имеют большинство из тех же параметров):
Рисунок 7 – Мастер создания десктопного приложения Visual Studio 2017
Убедитесь, что вы сняли флажок Предкомпилированный заголовок (Precompiled Header).
Затем нажмите ОК или Finish. Теперь ваш проект создан!
Обозреватель решений Visual Studio
В левой или правой части окна вы должны увидеть окно под названием Обозреватель решений. В этом окне Visual Studio создала для вас решение (решение "HelloWorld"). Внутри него, имя которого выделено жирным шрифтом, находится ваш новый проект ( HelloWorld ). Visual Studio создала для вас в этом проекте ряд файлов, в том числе HelloWorld.cpp (в элементе дерева Исходные файлы (Source Files)). Вы также можете увидеть некоторые другие файлы .cpp или .h, которые пока можете игнорировать.
Рисунок 8 – Начальные окна Visual Studio 2019
В текстовом редакторе вы увидите, что Visual Studio уже открыла HelloWorld.cpp и создала для вас код. Выделите и удалите весь код и введите/скопируйте следующий код в вашу IDE:
Чтобы скомпилировать программу, либо нажмите F7 (если это не сработает, попробуйте Ctrl + Shift + B ), либо перейдите в меню Сборка (Build) → Собрать решение (Build Solution). Если всё пойдет хорошо, вы должны увидеть следующее в окне вывода:
Или, в зависимости от выбранного языка:
Это означает, что ваша компиляция прошла успешно!
Вы забыли отключить предварительно скомпилированные заголовки при создании проекта. Заново создайте свой проект (в соответствии с инструкциями выше) и обязательно отключите предварительно скомпилированные заголовки.
Чтобы запустить скомпилированную программу, нажмите Ctrl + F5 или перейдите в меню Отладка (Debug) и выберите Запуск без отладки (Start Without Debugging). Вы увидите следующее:
Рисунок 9 – Запуск программы
Это результат выполнения вашей программы! Поздравляем, вы скомпилировали и запустили свою первую программу!
Создание проекта в Code::Blocks
Чтобы создать новый проект, перейдите в меню File (Файл) → New (Новый) → Project (Проект). Появится диалоговое окно, которое выглядит следующим образом:
Рисунок 10 – Code::Blocks. Диалоговое окно создания проекта
Выберите Console application (консольное приложение) и нажмите кнопку Go (перейти/создать).
Если вы видите диалоговое окно мастера консольного приложения, нажмите Next (далее), убедитесь, что выбран C++, и снова нажмите Next.
Теперь вам будет предложено назвать ваш проект. Назовите проект HelloWorld . Вы можете сохранить его где угодно. В Windows мы рекомендуем сохранить его в подкаталоге диска C, например C:\CBProjects .
Рисунок 11 – Code::Blocks. Диалогове окно сохранения проекта
Вы можете увидеть другое диалоговое окно с вопросом, какие конфигурации вы хотите включить. Значения по умолчанию здесь подойдут, поэтому выберите Finish.
Теперь ваш новый проект создан.
В левой части экрана вы должны увидеть окно Management (управление) с выбранной вкладкой Projects (проекты). Внутри этого окна вы увидите папку Workspace с вашим проектом HelloWorld внутри:
Рисунок 12 – Code::Blocks. Workspace
Внутри проекта HelloWorld разверните папку Sources (исходники) и дважды щелкните на « main.cpp ». Вы увидите, что для вас уже написана программа hello world!
Замените ее следующим кодом:
Чтобы собрать проект, нажмите Ctrl + F9 или перейдите в меню Build (Сборка) → Build (Сборка). Если всё пойдет хорошо, вы должны увидеть следующее в окне журнала сборки:
Это означает, что компиляция прошла успешно!
Чтобы запустить скомпилированную программу, нажмите Ctrl + F10 или перейдите в меню Build (Сборка) → Run (Запуск). Вы увидите что-то похожее на следующий скриншот:
Рисунок 13 – Запуск программы
Это результат выполнения вашей программы!
Для пользователей Linux
Пользователям Linux до компиляции в Code::Blocks может потребоваться установить дополнительные пакеты. Дополнительные сведения смотрите в инструкциях по установке Code::Blocks в уроке «0.6 – Интегрированная среда разработки (IDE)».
Если вы используете g++ из командной строки
В этом случае создавать проект не нужно. Просто вставьте следующий код в текстовый файл с именем HelloWorld.cpp и сохраните файл:
В командной строке введите:
Это скомпилирует и слинкует HelloWorld.cpp . Чтобы запустить скомпилированную программу, введите:
И вы увидите результат выполнения своей программы.
Если вы используете другие IDE или веб-компилятор
Вам нужно будет самостоятельно выяснить, как сделать следующее:
- создать консольный проект (только для IDE);
- добавить в проект файл .cpp (только для IDE, если он для вас не был создан автоматически);
- вставить в файл следующий код:
- скомпилировать проект;
- запустить проект.
Если компиляция завершилась ошибкой
Во-вторых, посмотрите вопросы и ответы в уроке «0.8 – Несколько распространенных проблем C++», поскольку ваша проблема может быть там освещена.
В-третьих, прочтите комментарии ниже – кто-то мог столкнуться с той же проблемой.
Если ваша программа запускается, но окно мигает и сразу закрывается
Некоторые IDE автоматически не приостанавливают экран консоли после завершения выполнения программы. Ваша программа запускается, но окно вывода закрывается, прежде чем вы сможете просмотреть результаты.
Если это так с вашей IDE, следующие два шага решат вашу проблему:
Во-вторых, добавьте следующий код в конец функции main() (непосредственно перед оператором return ):
Это приведет к тому, что ваша программа будет ждать, пока пользователь нажмет какую-нибудь клавишу, прежде чем продолжить, что даст вам время изучить вывод вашей программы, прежде чем IDE закроет окно консоли.
Другие решения, такие как обычно предлагаемое system("pause") , могут работать только в определенных операционных системах, и их следует избегать.
Ваш антивирус также может блокировать выполнение программы. В таком случае попробуйте временно отключить его и посмотреть, решится ли проблема.
Для пользователей Visual Studio
Visual Studio не будет в конце делать паузу в работе консольного приложения, если оно запускается с отладкой (меню Отладка (Debug) → Начать отладку (Start Debugging)). Если вы хотите, чтобы она сделала паузу, вы можете либо использовать приведенное выше решение с дополнительным кодом, либо запустить свою программу без отладки (меню Отладка (Debug) → Начать отладку (Start Without Debugging)).
Заключение
Поздравляем, вы прошли самую сложную часть этого руководства (установку IDE и компиляцию вашей первой программы)!
Не волнуйтесь, если не понимаете, что делают все строки в программе HelloWorld . Мы рассмотрим и подробно объясним каждую строку в начале следующей главы.
Обновление: это то, что я получаю от ILmerge:
Это просто приложение для Windows, кстати, форма, которую нужно заполнить и распечатать в формате pdf с фотографией, сделанной с помощью веб-камеры, если таковая имеется. Спасибо всем!
ОТВЕТЫ
Ответ 1
Ответ 2
- Добавьте файлы DLL в проект Visual Studio.
- Для каждого файла перейдите в "Свойства" и установите для его действия по сборке значение "Встроенный ресурс"
- На вашем коде вы можете восстановить ресурс с помощью GetManifestResourceStream ( "DLL_Name_Here" ), который возвращает поток, который может быть загружен.
- Запишите обработчик событий "AssemblyResolve", чтобы загрузить его.
Надеюсь, что это поможет, Pablo
Ответ 3
Я немного изменил код Пабло, и это сработало для меня.
Он не получал имя ресурса DLL правильно.
Ответ 4
Ответ, который вы ищете:
Ответ 5
Добавьте этот анонимный код функции в начало нашего конструктора приложений. Это добавит dll из встроенного ресурса в тот же проект.
Ответ 6
Просмотрите AssemblyResolve событие в домене приложения.
У меня нет образца, но вы в основном проверяете, что требуется, и потоковое восстановление DLL ресурсов. Я верю, что LinqPAD делает это хорошо - вы могли бы взглянуть на реализацию Джозефа Альбахари с декомпилятором и т.д.
Ответ 7
Я знаю, что тема старая, но я напишу ее будущим людям, которые захотят ее использовать.
i основывается на коде userSteve.
Я предлагаю изменить это.
таким образом он работал бы, даже если пространство имен отличается от имени сборки
также, если вы хотите использовать DLL из каталога, вы можете использовать его так (каталог "Ресурсы как пример" )
Ответ 8
Вы не ссылались на WPF, но если это так, это может быть причиной вашей ошибки. Если нет, ILMerge должен отлично работать для вас. Если вы используете WPF, вот решение, которое хорошо работает:
Читайте также: