Open + Save .exe файл в блокноте делает его поврежденным - PullRequest
0 голосов
/ 28 декабря 2010

Я только что опубликовал это простое консольное приложение, которое должно показывать текстовое поле со значением параметра с именем «userID» со значением 1001. Это работает как шарм.Теперь мне нужно изменить это значение вне редактора, из блокнота и т. Д.

Когда я часто открываю приложение, возникает отсутствие смысла (& o! -Å Þþþ, o "Ü +) и т. Д.... но с быстрым (ctrl + F) я нашел значение 1001 и изменил его на другое целое число. Я снова запустил приложение, и оно не удалось, даже не выдало никакого пользовательского сообщения об ошибке. В какой-то момент я попыталсяпросто открыв недавно опубликованную не поврежденную версию приложения, ничего не изменили, затем сохранили из блокнота, и он также был поврежден. Кажется, что блокнот не может открыть некоторые символы или что-то. Нужно ли опубликовать приложениев каком-то конкретном текстовом языке Unicode или что-то в этом роде?

Помощь очень ценится :) Я знаю, это звучит как глупое приложение, но это всего лишь проверка концепции:)

Я использую vb.нетто для этого

Ответы [ 4 ]

4 голосов
/ 28 декабря 2010

Вам необходимо использовать редактор двоичных файлов (также называемый hex-редактором). Visual Studio может сделать это, если вы откроете файл в двоичном режиме. Блокнот - это текстовый редактор, когда вы сохраняете в нем двоичный файл, он будет путаться во всех отношениях, наиболее очевидной из которых является замена \ n на \ r \ n. Также все остальное в вашем вопросе просто страшно. Почему вы редактируете EXE-файл ??

1 голос
/ 28 декабря 2010

Блокнот предназначен для чтения и записи текстовых файлов. Загрузка произвольного двоичного файла (например, исполняемого файла) в Блокнот, вероятно, повредит файл.

То, что вы, вероятно, ищете, обычно называется "hex hex editor" .

0 голосов
/ 28 декабря 2010

Вместо того, чтобы редактировать Exe, рассматривали ли вы изменение файла кода и запуск компилятора через Process.Start

0 голосов
/ 28 декабря 2010

Блокнот предназначен для редактирования текстовых файлов и плохо обрабатывает двоичные файлы, т.е. е. файлы, содержащие все виды нетекстовых или невидимых кодов ASCII.

Ручная смена EXE не будет работать. Вам нужен какой-то внешний файл конфигурации (например, XML или простой текстовый файл), в котором вы будете хранить значение этого параметра и читать его.

...