2016-12-08 1 views
0

Im очень новое в среде разработки Mac. Я установил Visual Studio для Mac и создал новое решение .NET/Gtk 2.0 для создания инструмента переименования файла GUI. Я создал инструмент. Однако, когда я создаю его в debug и release, он создает файл .exe, который я могу запускать только с оболочкой.Mac Приложение от Gtk в Visual Studio Mac

Однако мне нужно создать эту программу в комплекте приложений, чтобы я мог отправить ее другим пользователям, и они могут запустить ее, нажав на нее. Есть ли способ сделать это? (Я потратил несколько часов на это, но не мог видеть ясный документ, который мне объясняет. Если ничего не работает, мне нужно переписать его на Java).

Большое вам спасибо!

+0

Я также получаю exe, когда я создаю для linux и на моем ящике ubuntu с установленным моно. Я могу просто дважды щелкнуть по исполняемому файлу, чтобы запустить его. Если это не работает, возможно, вы можете создать сценарий оболочки или собственное приложение, которое запускает exe? –

+0

Да, двойное нажатие не вызывает, я запускаю его из оболочки, и я не думаю, что пользователи будут довольны оболочкой или должны загрузить моно-фреймворк для ее запуска. Так что, я думаю, я буду строить его с Java, так как раньше я никогда не строил собственное приложение для Mac. Спасибо хоть! – ozimax06

ответ

0

У меня есть сообщество Xamarin Studio, которое я пробовал и снова, оно было построено в EXE.

+0

Вы можете добавить изменения к своему сообщению или комментарии ниже. Пожалуйста, зарезервируйте раздел ответа для получения фактических ответов. –

0

Предполагая, что Mono установлен на всех ваших целевых компьютерах, вы можете собрать (вручную) папку пакета .app, которая будет запускать ваш .exe-файл, когда пользователь дважды щелкнет по нему. Есть определенный набор вещей, которые вам нужно будет поместить в пакет .app, один из которых - это командный файл оболочки, который начнет запускать ваш .exe и будет запущен при запуске .app.

B.t.w. Visual Studio Mac и Xamarin Studio и MonoDevelop - все это в основном разные повороты на одно и то же, MonoDevelop. VS mac и XS имеют дополнительные функции, но основной базой IDE является MD. Какой бы из этих продуктов вы не использовали для компиляции своего кода, вряд ли можно было бы отличить что-то другое.

Структура основной папки .app:

MyApp.app 
    +-- Contents 
     --- Info.plist 
     +-- MacOS 
      --- MyApp 
      --- MyApp.exe 
     +-- Resources 
      --- MyApp.icns 

Содержание следующим образом:

Info.plist является Mac OS конкретный XML-файл, который содержит описание пакета .app. Это будет выглядеть примерно так:

<?xml version="1.0" encoding="UTF-8"?> 
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> 
<plist version="1.0"> 
<dict> 
    <key>CFBundleDevelopmentRegion</key> 
    <string>English</string> 
    <key>CFBundleExecutable</key> 
    <string>MyApp</string> 
    <key>CFBundleIconFile</key> 
    <string>MyApp.icns</string> 
    <key>CFBundleIdentifier</key> 
    <string>com.myapp</string> 
    <key>CFBundleInfoDictionaryVersion</key> 
    <string>6.0</string> 
    <key>CFBundleName</key> 
    <string>My App Name</string> 
    <key>CFBundlePackageType</key> 
    <string>APPL</string> 
    <key>CFBundleShortVersionString</key> 
    <string>1.2.3</string> 
    <key>CFBundleSignature</key> 
    <string>xmmd</string> 
    <key>CFBundleVersion</key> 
    <string>1.2.3</string> 
    <key>NSAppleScriptEnabled</key> 
    <string>NO</string> 
</dict> 
</plist> 

В MyApp.icns файл является файлом значок, который вы хотите использовать в качестве значка для пакета приложений.

Файл MyApp.exe - это ваш скомпилированный .NET exe.

Файл MyApp - это исполняемый командный файл, который выполняется при запуске пакета .app. Это указано в файле plist в CFBundleExecutable и должно быть исполняемым (+ x разрешениями). Это может быть так:

#!/bin/sh 

DIR=$(cd "$(dirname "$0")"; pwd) 
MONO_FRAMEWORK_PATH=/Library/Frameworks/Mono.framework/Versions/Current 
export DYLD_FALLBACK_LIBRARY_PATH="$DIR:$MONO_FRAMEWORK_PATH/lib:/lib:/usr/lib" 
export PATH="$MONO_FRAMEWORK_PATH/bin:$PATH" 

exec mono "$DIR/MyApp.exe" 

Надеюсь, это поможет. Привет, Мартин.

Смежные вопросы