0

Web プロジェクトを複数 (10 台程度) のサーバーに展開する必要があります。ジョブを実行する Nant スクリプトを開発しましたが、依存関係の 1 つである Microsoft.Web.Infrastructure.dll が実行できないという問題に直面しました。 t は、これまでに行ったことを展開します。

この dll への参照を追加し、それをローカルまたは何かにコピーするようにマークする方法を説明してください。この dll への参照を proj に追加すると、何が起こっているのかを説明しようとします。参照は web.config に次のように追加されます。

<assemblies>
    <add assembly .... blah blah />
</assemblies>

これは、アセンブリが GAC にある必要があることを意味しますよね? Visual Studio で Property Pages をクリックし、参照タブに移動すると、この Dll が Gac にあることがわかります。

わかりました、次のコマンド

gacutil.exe -l Microsoft.Web.Infrastructure returns with no Result !

では、このアセンブリはどこに保存されているのでしょうか? マイクロソフトが魔法をどのように行うのか???

どうすればGACから削除できますか???

誰 ?

PS。Webで見つけた可能な解決策の1つ。パッケージマネージャーを実行してそこから再度インストールすることです...しかし、私にとってはオプションではありません。セキュリティ上の理由からインターネットに接続していません。

4

2 に答える 2

0

webmatrix / web プラットフォーム インストーラーを使用して、各サーバーに DLL をインストールすることをお勧めします。

于 2013-08-19T10:16:51.047 に答える
0

GAC にインストールされていると想定して MVC に対して開発した場合は、http://www.asp.net/mvc/mvc3経由でターゲット サーバーにインストールしないでください。

コピー ローカル ソリューションは、使用する proj ファイルがある場合に最適ですが、すべて sln と web.config である Web サイト プロジェクトを選択したため、そうではありません。

Web サイトのプロパティ ページを介して (nuget パッケージから) 参照を追加できます。すでに nuget パッケージがあるように聞こえますが、そうでない場合は、bin フォルダーを右クリックしてパッケージを管理します - Microsoft.Web.Infrastructure - インストール これを追加する場合パッケージ参照を bin フォルダーに追加すると、新しいファイルが表示されます: bin\Microsoft.Web.Infrastructure.dll.refresh

これには、パッケージ内の実際の dll へのリンクが含まれています -..\packages\Microsoft.Web.Infrastructure.1.0.0.0\lib\net40\Microsoft.Web.Infrastructure.dll

dll は、ビルド時に bin フォルダーにコピーされます。

于 2013-08-19T10:05:44.590 に答える