46

私はMVC4アプリケーションを使用しており、VS2010用のMVC4拡張機能をインストールしたDEVマシンで正常に動作します。

IIS 7を使用してWebサーバーに展開する場合、MVC 4をインストールする必要がありますか、それともプロジェクトに含まれているdllで十分ですか?

私が質問している理由は、インフラストラクチャチームに要件を提供する必要があるためです。

ありがとう。

4

4 に答える 4

80

サーバーにMVCをインストールせずにMVCアプリケーションを実行できます。VisualStudioにはデプロイ可能な依存関係と呼ばれるものがあります。これにより、MVCDLLが公開時にbinフォルダーに公開されます。

msdnページから、

これにより、アセンブリ(DLLファイル)がWebサイトプロジェクトまたはWebアプリケーションプロジェクトに追加されます。Webサイトまたはアプリケーションを展開すると、ファイルは展開されたプロジェクトに含まれます。これは、プロジェクトが依存するアプリケーションまたはテクノロジが、Webプロジェクトをホストするサーバーにまだインストールされていない場合に役立ちます。たとえば、この機能を使用して、ASP.NETMVC3がインストールされていないサーバーにASP.NETMVC3Webアプリケーションを展開できます。

プロジェクトを右クリックし、コンテキストメニューから[デプロイ可能な依存関係の追加]を選択します

ここに画像の説明を入力してください

公開するすべてのDLLを選択します

ここに画像の説明を入力してください

[OK]をクリックすると、_bin_deployableAssembliesという新しいフォルダーが表示されます。これで通常の公開手順を実行でき、公開出力のbinフォルダーにdllが作成されます。

ここに画像の説明を入力してください

詳細については、この投稿を確認してくださいhttp://haacked.com/archive/2011/05/25/bin-deploying-asp-net-mvc-3.aspx

Visual Studio2010SP1が必要です。そうしないと、公開するプロジェクトを右クリックしたときにコンテキストメニューに表示されません。

編集: MVC4の時点で、MVCアプリケーションを実行するために必要なすべてのアセンブリがbinディレクトリに自動的に追加され、MVC4アプリケーションはすべてbin展開可能です(つまり、MVCを明示的にインストールせずにサーバーで実行できます)。このため、[展開可能なアセンブリを含める]ダイアログはVisualStudio2012から削除されました

于 2012-05-04T01:37:50.167 に答える
6

Visual Studio 2012で「デプロイ可能な依存関係を追加する」オプションはなくなりました。したがって、すべてのMVCアセンブリをbinデプロイすることにより、手動で行う必要があります。

Microsoft.Web.Infrastructure
System.Web.Helpers
System.Web.Mvc
System.Web.Razor
System.Web.WebPages
System.Web.WebPages.Deployment
System.Web.WebPages.Razor

ステップバイステップガイドはここにあります

于 2013-03-14T15:14:10.467 に答える
4

Visual StudioでMVCx固有のプロジェクトを作成すると、多くのMVCが表示されます。*参照がプロジェクトに追加され、デフォルトでこれらの参照プロパティ「ローカルコピー」はすべて「True」に設定されます。これは、これらの参照がユーザーの一部になることを意味します。にデプロイするときはいつでも最終的なソリューション。これらのMVC固有の参照もBINフォルダーの一部であることを確認することもできます。

最後に、このソリューションをパッケージ化して特定のWebサーバーまたはWindows Azureに公開するか、WebDeployを使用する場合、これらの参照はすべてパッケージの一部にもなります。また、これらの参照はパッケージに同梱されているため、ソリューションを展開する場所にすべてのMVC固有の参照があり、そのため、MVCをそれらの特定のサーバーに展開する必要はありません。

また、Visual Studioでプロジェクトに特定の参照を追加するときはいつでも、そのプロパティ "Copy Local"をTRUEに設定して、参照が常に最終的なソリューションの一部になり、トラブルからあなたを救うようにしたいと思います。将来。

于 2012-05-04T01:46:04.363 に答える
1

プロジェクトのbinにdllをデプロイするだけで済みます。Webサイトをリリースする準備をする方法の例については、次のブログ投稿を確認してください。

running-an-asp-net-mvc-3-app-on-a-web-server-that-doesn-t-have-asp-net-mvc-3-installed.aspx

于 2012-05-04T01:38:55.710 に答える