2016-12-14 7 views
8

のための実行可能ファイルを含んでいました。私は今すぐ両方のウィンドウの実行可能ファイルとしてパッケージ化したい& mac。は、私はVisual Studioでの.NETコアコンソールアプリケーションを作っているMAC

私はproject.jsonに、ランタイム・セクションを追加しました。

これは私がここで見たものに基づいて、私のprojects.jsonです:https://docs.microsoft.com/en-us/dotnet/articles/core/deploying/index#self-contained-application

{ 
    "version": "1.0.0-*", 
    "buildOptions": { 
    "debugType": "portable", 
    "emitEntryPoint": true 
    }, 

    "dependencies": { 
    "AngleSharp": "0.9.9", 
    "CsvHelper": "2.16.3", 
    "Microsoft.NETCore.App": { 
     "version": "1.0.1" 
    } 
    }, 

    "frameworks": { 
    "netcoreapp1.0": { 
    } 
    }, 
    "runtimes": { 
    "win10-x64": {}, 
    "osx.10.10-x64": {} 
    } 
} 

これは、デバッグ/リリースのフォルダを作成し、実行可能ファイルを含んでいるwin10-x64と呼ばれるが、OSXのためのフォルダがありません。

私はこのOSをターゲットに依存足りませんか?

答えて

5

答えは、コマンドライン

dotnet publish -r osx.10.10-x64 

から、それを公開した後、フォルダ/osx.10.10-x64/publish/は、SDKがインストールされているMac上で実行することができますファイルを保持しています。

+0

-rが実際にあまりまだ行っていない、私はあなたがプラットフォームごとのか何かにそれらを設定した場合、それはいくつかの設定を使用するかもしれないと思います。最終的には、それを使ってアプリケーションとのランタイムを特定のプラットフォーム用のバイナリにバンドルすることができますが、その機能は1.0に対応していません。以前Windows/Linux用に公開したプロジェクトでコマンドを使用しましたが、再公開された唯一のファイルはPROJECTNAME.deps.json、PROJECTNAME.runtimeconfig.json、およびweb.configでした。既存のbin \ Debug \ netcoreapp1.0 \ publish。プロジェクトDLL自体は再コンパイルされませんでした。 – user169771

+0

それは働いているようです。私は私がMacで動くことができるファイルを得た – Guerrilla

-1

.NETのコアは、直接実行可能ファイルをビルドしません。それはロードマップにありますが、最後に私は(1.0.1)をチェックしましたが、それはまだありません。コンパイル時に、ドットネットバイナリに渡すことで実行できるDLLファイルが得られます。 DLLの拡張機能があなたをだまさせないようにしてください。サポートされているプラ​​ットフォームであれば動作します。他の男として

あなたは彼らがバンドルする準備が整いましたので、すべてのアプリのファイルがパブリッシングフォルダにコピーされますが、同じDLLファイルがそこにコピーされていることを確認するために公開しないべきであると述べました。私は同じ公開結果を取得して、IISとRed Hatの両方のWindowsでKestrelの下で実行しました。

+1

それはしかし働いた。私はMacで走ったファイルを持っています。 – Guerrilla

関連する問題