.NET 2.0 на Windows 8, 10

Discussion in 'С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby' started by noxjoker, 3 Feb 2017.

  1. noxjoker

    noxjoker Member

    Joined:
    7 Aug 2009
    Messages:
    189
    Likes Received:
    24
    Reputations:
    0
    Приветствую появилась цель заставить C# приложение работать на всех версиях Windows без дополнительных установок .net framework.
    Делаю C# приложение на .net 2.0 оно работает на Windows 7 но не работает на 8 и 10. По умолчанию на Windows 8 и 10 нету .net framework 2.0 или 3.5. Есть одна особенность если изменить несколько байтов в приложении .net framework 2.0 тогда оно будет работать и на Windows 8 и 10.

    А именно находим нужные байты:
    [​IMG]

    Меняем их на:
    [​IMG]

    И программа работает на Windows 8 и 10 но не работает на Windows 7.
    Задача сделать программно изменение переменной в которой хранится версия .net framework в случае если была выдана ошибка на Windows 10. Ошибка выглядит так:
    [​IMG]

    Если коротко - Отлавливаем окно в Windows 10 о том что нету нужного .net framework меняем значение переменной на нужное и программа идет дальше. Я так понимаю реализовать это с помощью ассемблера нужно без дополнительных программ или библиотек и так чтобы антивирус не орал что это супер троян который убивает ваш компьютер [​IMG]

    P.S. Любым советам буду рад. Да знаю задача возможно поставлена не корректно или заезжена тема но хочу ее попробовать решить.
     
  2. neviens

    neviens Member

    Joined:
    9 Oct 2013
    Messages:
    82
    Likes Received:
    28
    Reputations:
    3
    Это делается иначе. Рядом с proga.exe создаётся файл proga.exe.config примерно такого содержания:
     
    GRRRL Power likes this.
  3. noxjoker

    noxjoker Member

    Joined:
    7 Aug 2009
    Messages:
    189
    Likes Received:
    24
    Reputations:
    0
    Попробовал и действительно данный способ позволяет запустить программу на всех Windows, но в итоге получается два файла .config и .exe как сделать в итоге один ехе ? Спасибо за помощь.