2016-08-18 41 views
3

私はnet461フレームワークを対象とした.NetコアWebアプリケーションを持っています。もともとは.EXEを生成していて、IISにデプロイするときはうまく動作していました。私は、ポータブルアプリに変更したいので、次のように、私はProjectJsonで「buildOptions」に変更:私は、コンパイル時にIISにDLLとして.Net Coreを配備 - コマンドラインでプロセスを開始できませんでした "dotnet" site.dll '

"buildOptions": { 
    "emitEntryPoint": false, 
    "preserveCompilationContext": true, 
    "debugType": "portable" 
}, 

は今、私はDLLを取得し、それは、IIS Expressの細かい動作しますが、私はIISに公開するときとプロジェクトの実行に失敗したと、私は、「コマンドラインを使用してプロセスの起動に失敗しました 『『を参照

<aspNetCore processPath="dotnet" arguments=".\myWebApp.dll" 
      stdoutLogEnabled="false" 
      stdoutLogFile=".\logs\stdout" 
      forwardWindowsAuthToken="false" /> 

DOTNET』MyWebApp.dll』、ErrorCodeが= 『0x80004005の』」アプリケーションイベントに:へのweb.config aspnetcore要素を変更ログ。

はで "DOTNETのmywebapp.dll" 結果をコマンドラインから実行しようとすると:

A fatal error was encountered. The library 'hostpolicy.dll' required to 
execute the application was not found in 'C:\inetpub\wwwroot\ETimeCore2'. 

だから私が見つかりました。そして、ディレクトリにhostpolicy.dllをコピーして入手してください:

Could not resolve CoreCLR path. For more details, enable tracing by setting 
CORE HOST_TRACE environment variable to 1 

I CORE HOST_TRACEを1に設定し、最後に1つのエラー(上)がロードされているすべてのdllの詳細な応答を得て、値を追加しませんでした。

私が何を間違えているのか何か考えていますか? .EXEを変更するときには、最初にアプリケーションプールをリサイクルする必要があるため、EXEファイルにDLLを追加することをお勧めします。

+0

あなたは 'CORE HOST_TRACE環境変数を1にしましたか? – Will

+0

はい、私はそれを追加する場所が正確ではないので、システム環境変数を編集してCOREHOST_TRACEを設定しました(ポストのスペースは "CORE"と "HOST"の間で不注意でした)が1になりましたが、トレース出力なしを参照してください。 –

+0

私は動作するためのトレースを取得し、すべてのdllsの冗長な応答を非常に最後に同じエラーメッセージが続いてロードされています(上の同じもの以外の他のエラーはありません)。私はこの情報を含めるために私の質問を編集しました。 –

答えて

2

"emitEntryPoint"を無効にする場合はdotnet mywebapp.dllを使用できません。

emitEntryPointは、プロジェクトがコンソールアプリケーションかライブラリかを示します。 sourcesから:あなたのケースでは

if (framework.IsDesktop() && compilerOptions.EmitEntryPoint.GetValueOrDefault()) 
{ 
    OutputExtension = FileNameSuffixes.DotNet.Exe; 
} 

framework.IsDesktop()ターゲットフレームワークがnet461あるとしてそれは、.NET Frameworkのではなく、.NETのコアである、真実です。つまり、emitEntryPointを有効にすると、出力として.exeが出力されます。


「アプリケーションを実行するために必要なライブラリー 『hostpolicy.dllが』で見つかりませんでした」というエラー実は今(http://github.com/dotnet/cli/issues/2859問題を参照)、以下のことを意味します

dotnet.exeができませんmywebapp.dll内のエントリポイントを見つける

+0

ありがとうございました、それは問題かもしれないと思ったので、私の次の質問はVS 2015を.exeの代わりに.dllとしてビルドする方法です。 –

関連する問題