簡體   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