2017-03-03 13 views
0

.NET Coreコンソールアプリケーションをスタンドアロンビルドとして複数のプラットフォームに展開しています。 MacOSのバージョンを稼働させるのに問題があります。.NET CoreスタンドアロンビルドはMacOS 10.12上では実行されません

"エラー:依存関係マニフェストで指定されたアセンブリが見つかりませんでした - パッケージ: 'runtime.osx.10.10-x64.runtime.native.System'、バージョン: 'win7-x64、win7-x64、win10-x86、win7-x86、win7-x64、win7-x64、win7-x64、win7-x64、 win10-x64、centos.7-x64、問題なく使用できます。

MacOS 10.12(Sierra)を実行しているMac miniでmacビルドを実行しようとしています。 osx.10.10-x64とosx.10.12-x64をターゲットにして同じエラーが発生しました。 .NET Core 1.0.1と1.1.0の下で、同じエラーでビルドして公開しようとしました。

私はWindows 10システムでビルドしており、それぞれの場合にスタンドアロンビルドを作成しています。私は、Macに.NET Coreフレームワークをインストールしたとき(そしてフレームワークビルドとしてアプリケーションをビルドしたとき)、自分のアプリケーションが正しく動作するようにしましたが、スタンドアロンビルドを実行する必要があります。

私が知っている唯一の外部依存関係であるHomebrewを通じてMacにOpenSSLをインストールしました。私のproject.jsonファイルは以下の通りです。

助けていただけたら幸いです!

{ 
    "version": "1.1.0-*", 
    "buildOptions": { 
    "emitEntryPoint": true 
    }, 

    "dependencies": { 
    "Microsoft.NETCore.App": "1.1.0", 
    "Newtonsoft.Json": "9.0.1", 
    "System.Xml.XmlSerializer": "4.3.0" 
    }, 

    "frameworks": { 
    "netcoreapp1.1": { 
     "imports": "dnxcore50" 
    } 
    }, 

    "runtimes": { 
    "centos.7-x64": {}, 
    "win10-x64": {}, 
    "win10-x86": {}, 
    "win7-x64": {}, 
    "win7-x86": {}, 
    "osx.10.10-x64": {}, 
    "osx.10.12-x64": {} 
    }, 

    "description": "XXX gameplay instance server.", 
    "title": "XXX" 
} 

答えて

0

新しいプロジェクトを作成するドッキングウィンドウを使用して、同様にあなたのproject.json作品をコピーし、環境問題のようです。容器の外側の容器

cd /app 
dotnet restore 
dotnet publish -c Release -r osx.10.12-x64 
exit 

インサイド

docker run -v <your app folder>:/app -it --rm microsoft/dotnet:1.1.0-sdk-projectjson 

chmod +x bin/Release/netcoreapp1.1/osx.10.12-x64/publish/app 
./bin/Release/netcoreapp1.1/osx.10.12-x64/publish/app 

テストプロジェクトのリンク:https://drive.google.com/open?id=0B9E5H1HYtm8DSFJMSG1CZDNyTGc

+0

は、それが、この場合にドッキングウィンドウを使用する必要ですか?スタンドアローンビルドの目的は、ドッキングステーションが提供するものと似ていませんか?つまり、ターゲットマシン上で実行する自立型のポータブル環境ですか? 環境に問題があるようですが、公開プロセスに正しいライブラリが含まれていないようです。可能であれば、ドットネット構築プロセスの中核となる問題を修正したいと考えています。しかし、それがうまくいかない場合は、ドッカーを試してみることをお勧めします。助けてくれてありがとう! –

+0

ちょうど明らかであるように、ドッカーはスタンドアロンのアプリを公開するためにのみ使用されます。その後、ドッカーは必要ありません。ネットやドッカーなしで新しいホストにアプリをコピーして実行することができます。私はスタンドアローンのアプリケーションで同様の問題に直面しています。ドッカーは環境問題を隔離する最良の方法です。 http://stackoverflow.com/questions/42194718/problems-with-net-core-self-contained-publish –

+0

感謝リカルド、私はそれを試してみましょう! –

関連する問題