У меня есть требование для небольшого приложения, которое пользователь будет загружать из Интернета и запускать на своем Mac. Цель этого - установить значение в xml-файле на их локальном компьютере. (Это для Parallels - в основном сценарий будет читать их серийный номер Mac и устанавливать его как серийный номер виртуальной машины в /users//Parallels/.pvm/config.pvs.)
Я достаточно опытен в программировании для Windows, но плохо знаком с программированием для Mac. Если бы я делал это в Windows, я бы написал небольшой C # EXE-файл, который пользователь мог бы загрузить и запустить.
Это код, который у меня есть:
string serialNumber;
using (var p = new Process())
{
var serialRegex = new Regex("\"IOPlatformSerialNumber\" = \"(\\S+)\"");
p.StartInfo = new ProcessStartInfo("/usr/sbin/ioreg",
"-c IOPlatformExpertDevice");
p.StartInfo.UseShellExecute = false;
p.StartInfo.RedirectStandardOutput = true;
p.Start();
serialNumber = serialRegex.Match(p.StandardOutput.ReadToEnd()).Groups[1].Captures[0].Value;
p.WaitForExit();
}
Console.WriteLine("The following Virtual Machines were detected. Please enter the nunber of the Windows installation you plan to use as your Analysys Mason virtual machine.");
var profilePath = Environment.GetFolderPath(Environment.SpecialFolder.UserProfile);
var parallelsDir = Path.Combine(profilePath, "Parallels");
bool carryOn = false;
int i = 1;
string[] vms = Directory.GetDirectories(parallelsDir, "*.pvm").OrderByDescending(f => f).ToArray();
foreach (var vm in vms)
{
Console.WriteLine(i + ". " + vm.Split('/').Last());
i++;
}
int index = 0;
while (!carryOn) {
Console.WriteLine("Enter the number of the Virtual Machine");
var entry = Console.ReadLine();
Console.WriteLine(Environment.NewLine);
if (Int32.TryParse(entry, out index)) {
if (index > 0 && index <= vms.Length){
carryOn = true;
} else {
Console.WriteLine("Please enter a number of a virtual machine from the list above");
}
} else {
Console.WriteLine("Please enter a valid number");
}
}
Console.WriteLine("You selected: " + vms[index - 1]);
Это работает из Visual Studio, но я понятия не имею, как развернуть его как отдельный исполняемый файл.
Как мне упаковать его, чтобы я мог положить его куда-нибудь, чтобы пользователь мог загрузить и запустить его?
Я бы предпочел сделать приложение с графическим интерфейсом (похожее на приложение WinForms или XAML). Как я могу сделать это из Visual Studio / Xamarin?