繁体   English   中英

Visual Studio Mac中Gtk的Mac应用程序

[英]Mac Application from Gtk in Visual Studio Mac

我在Mac开发环境中非常新。 我安装了Visual Studio for Mac,并创建了一个新的解决方案.NET / Gtk 2.0项目来构建GUI文件重命名工具。 我创建了工具。 但是,当我在调试和发行版中构建它时,它会生成.exe文件,该文件只能在Shell中运行。

但是,我需要在应用程序捆绑包中构建该程序,以便可以将其发送给其他用户,并且他们可以通过单击它来运行它。 有什么方法可以完成?(我已经花了几个小时,但是看不到清晰的文档向我解释。如果没有任何效果,那么我需要用Java重写它)。

提前非常感谢您!

假设Mono已安装在所有目标计算机上,则可以放在一起(手动)一个.app软件包文件夹,当用户双击它时,该文件夹将运行.exe文件。 您需要将.app程序包中的某些内容放入其中,其中一个是命令外壳文件,它将启动您的.exe并在.app运行时执行。

Btw 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程序包时执行的可执行命令文件。 这在CFBundleExecutable下的plist文件中被引用,并且必须是可执行的(+ 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"

希望这可以帮助。 干杯,马丁。

我有Xamarin Studio社区,我尝试过一次,它是EXE内置的。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM