Вы всегда должны контролировать свои записи. При загрузке приложения должны загружаться в ОЗУ, а затем память, которая выделяется в ОЗУ, поэтому на флэш-накопитель ничего не записывается.
Самая важная вещь для портативного приложения заключается в том, что для вашего приложения не требуется никакой установки. Вы не хотите особенно зависеть от параметров реестра, поскольку ваше приложение не будет «установлено» на других компьютерах.
Одной из проблем переносимых приложений, которую вы можете рассмотреть, является сохранение данных. Обычно вы пишете в папку Application Data пользователя для сохранения данных. В этом случае любые сохраненные данные будут применяться только к пользователю на этом компьютере. Если вам нужны локальные данные приложения, вы можете создать Seralized XML-файл для ваших настроек и сохранить его локально в каталоге вашего приложения. В этом случае запись в файл, вероятно, будет единственным действием при записи, о котором вам нужно беспокоиться.
Для решения проблемы переносимости .NET вы также можете написать небольшую программу ввода на C ++, которая проверяет, установлен ли на компьютере .NET. .NET имеет значения реестра, которые вы можете проверить, чтобы увидеть установленные версии, поэтому, если .NET установлен, запустите ваше приложение, иначе выведите сообщение о том, что .NET необходимо установить в первую очередь.
Редактировать: Я хотел бы добавить, что я занимаюсь разработкой приложений для ультразвуковых машин с использованием XAML в C # 3.0. Приложение, которое я пишу, прекрасно работает с флэш-накопителя USB, в то время как все пользовательские настройки хранятся в локальной базе данных AppData, поэтому на USB ничего не записывается. Хотя приложение можно установить с помощью установщика .exe, установщик не записывает никаких значений реестра, от которых зависит приложение.