Таргетинг на платформу .NET / Mono - PullRequest
1 голос
/ 07 апреля 2011

Предположим, у меня есть 2 машины, одна машина с MS Windows с .NET 4.0, а другая начинает Linux-машину с Mono 2.10.1
Теперь я создаю приложение командной строки на соответствующих машинах, которое выведет установленную версию фреймворка, используя:

Console.WriteLine(Environment.Version);  

Вопрос 1

Верно ли мое предположение, что должно отображаться следующее:
Windows: 4.0.30319.1
Linux: 2.10.1 (или что-то подобное ??)

Вопрос 2
Предполагая, что на компьютере с Windows установлены и mono, и ms.net, есть ли способ указать, что исполняемый файл должен работать на платформе mono в windows? (возможно, файл конфигурации?)

Вопрос 3
Если я скомпилирую (простое) моно приложение на компьютере с Linux, будет ли этот скомпилированный exe работать на компьютере с Windows, на котором установлен только ms.net?

Ответы [ 3 ]

5 голосов
/ 07 апреля 2011

объявление Вопрос 1: вы должны ожидать версию Runtime, а не Mono

4 голосов
/ 07 апреля 2011

Обновление

  • Вопрос 1 (test.cs ниже [1]), протестировано на Linux:

.

mono.2.6.7 $ ./test.exe 
2.0.50727.1433
$ source custom/MONO/devenv.sh 
mono.2.11 $ dmcs test.cs
mono.2.11 $ ./test.exe 
WARNING: The runtime version supported by this application is unavailable.
Using default runtime: v1.1.4322
1.1.4322.2032
mono.2.11 $ mono ./test.exe 
4.0.30319.1
mono.2.11 $ 
  • Вопрос 2

    Вы можете создать пакетный файл для вызова mono.exe myapplication.Посмотрите в% PROGRAMFILES% \ Mono 2.10 \ bin множество примеров

  • Вопрос 3 Да

Для проверки совместимости проверьте наоборот (проверьтезаглушки реализации, отсутствующие функции P / Invoke и т. д.) есть инструмент MoMa


test.cs

using System;

namespace X 
{ 
  class Y 
  {
    public static int Main(string[] args)
    {
      Console.WriteLine(Environment.Version);
      return 0;
    }
  } 
}
0 голосов
/ 29 мая 2015

Для Вопроса 2: Вы можете по умолчанию установить время выполнения как моно в среде Windows для Xamarin Studio.

Вы можете установить время выполнения здесь:

Xamarin Studio => Инструменты => Параметры =>Проекты => .NET Runtimes => Добавить (добавить моно здесь)

и пометить моно как время выполнения по умолчанию.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...