2015-09-04 21 views
5

いくつかの非DNXクラスライブラリを使用するASP.Net 5 MVC 6プロジェクトがあります。これらのライブラリはdnuラップでラップされており、すべての動作はIIS Expressまたは自己ホストアプリケーションで検索されます。 「DNX:私のプロジェクトの リストASP.Net 5 IIS:以下の依存関係の解決に失敗しました

現在のランタイムターゲットフレームワーク:しかしIIS 8には、エラー

は、ターゲットフレームワークの次の依存関係 「DNX、バージョン= V4.5.1」を解決できませんでした示しバージョン= V4.5.1(dnx451「) バージョン:1.0.0-beta7-15532 タイプ:CLR アーキテクチャ:x64の OS名:Windowsの OSのバージョン:6.3.9600.0

dnx 4.6を使用した場合と同じエラーです(4.5.1で動作するかどうかを確認するためにダウングレードしました)。

libsには、次の場所で見つけることができますしかし

:正しいnugetパッケージ構造と \ APPROOTの\パッケージ(公開DNUはそれらを詰め)

それでは、どのように私は、IIS私のLIBSを見つけるのですか?

  1. は、2つのプロジェクトでソリューションを作成します:再現する

    手順新しいASP.Net MVCアプリケーションと通常のクラスライブラリを(パッケージではない)

  2. ラップクラスライブラリDNU経由

  3. を包みます

    MVCの参照クラスライブラリ

  4. 公開アプリケーション(Visual Studioから公開する場合問題が判明 :ES DNUは--runtimeアクティブを公開使用し、動作しない)

  5. はUPDATEをIISでWebサイトを作成し、公開したWebアプリ

のwwwrootフォルダにそれを指し示しますIIS自体ではなく、DNXにあります。 Webサイトを公開してからMicrosoft.AspNet.Server.WebListener経由で実行すると、同じエラーが発生します。 dnu publishがラップされたプロジェクトで適切に動作していないように見えます。

ただし、Windowsサービスを実行している場合はそうではありません。私は同じライブラリを参照するコンソールアプリケーション(パッケージ)を持っています。私はそれを--no-sourceで公開し、それをsc.exe経由でWindowsサービスとしてインストールし、すべて期待どおりに動作します。

+0

アセンブリ 'DNX'バージョン4.5.1のDLLのコピーはありますか? – Luke

+0

どういう意味ですか?私はすべてのDLLをDNX 4.5.1用に構築しており、DNXバージョン用に構築することができます。サードパーティのDLLではなく、クラスライブラリプロジェクトです。 – Vitaly

答えて

3

私の問題は、project.jsonではライブラリのバージョンがなく、空の文字列だけの参照があるということでした。 Visual Studioでは動作しますが、VSなしでは動作しません。 RCで私はコンテキストメニューの参照を追加できないので、私はそのような参照を持っていたので、私はそれを手動で追加し、それは働いた。だからここ は、IISの下で実行するには、Webサイトを設定する方法のステップです:

1))コマンド

2「ラップDNU」とあなたは非DNXプロジェクトをラップDNXプロジェクトからあなたへの参照を追加します非-DNXプロジェクトを開き、プロジェクトに正しいバージョンがあることを確認します。json(wrap \ yourproject \ project.jsonと同じバージョンである必要があります)。

"frameworks": { 
    "dnx46": { 
     "dependencies": { 
      "MyLib": "1.0.0-*"     
     } 
} 

3)DNUであなたのウェブサイトは、ランタイム・パラメータで再び公開)

dnu publish .\src\Web --out <outputfolder> 

4を公開公開:ここでは例があります。この時間は出力フォルダにコピーされます。しかし、今度はwwwrootフォルダが作成されていません。すでに3ステップで公開しています;-)。 DNX-バージョンとDNX-CLR:あなたはoutputfolder\wwwroot\web.configに移動してのAppSettingsで2つのパラメータの値を入力し)、ステップ3と4

dnu publish .\src\Web --out <outputfolder> --runtime dnx-clr-win-x64.1.0.0-beta7

5の順序を変更することができます。次に例を示します。

<appSettings> 
    <add key="bootstrapper-version" value="1.0.0-beta7" /> 
    <add key="runtime-path" value="..\approot\runtimes" /> 
    <add key="dnx-version" value="1.0.0-beta7" /> 
    <add key="dnx-clr" value="clr" /> 
    <add key="dnx-app-base" value="..\approot\src\Web" /> 
</appSettings> 

6)あなたの新しいウェブサイトを指して、IISで新しいWebサイトを作成し、実行時の.Net v4.0の

7)でアプリケーションプールを選択するoutputfolder \ wwwrootのフォルダー

8 )すべてが動作していることを確認してください

+0

beta8以上のユーザーにとっては、これらの指示が役に立たない可能性があります。ベータ8は、「マネージコードなし」に依存するHttpPlatformHandlerネイティブIISモジュールに依存する、異なる展開モデルを使用します。 'dnu publish'は' --runtime dnx-clr-win64.1.0.0-beta8'を取るべきですが、web.configはこのポストで言及されているキーのどれも必要としません。 – stephen

関連する問題