10

したがって、MVCをVisual Studioにインストールすると、MVCdllがGACに配置されます。したがって、プロジェクトをビルドできるようにするために、プロジェクトのファイルシステムに存在する必要はありません。

これをライブおよび継続的インテグレーションサーバーにデプロイする場合、MVCとRazorに必要な依存関係はバージョン管理されていません。マイクロソフトがこれを非常に複雑にした理由は、私を超えています。

私は私ができるすべてを自動化するためのものなので、不足しているdllの問題を解決するための最良の方法は何であるか疑問に思っています。

ここで、ASP.Net MVCプロジェクトについて、PhilHaackのhttp://haacked.com/archive/2011/05/25/bin-deploying-asp-net-mvc-3.aspxで説明されているようにbinデプロイメントを使用してこれを解決しました。ブログ。これは正常に機能しますが、ビルドサーバーでコンパイルされないSystem.Web.Mvcを参照するライブラリプロジェクトがいくつかあり、VisualStudioのbinデプロイオプションはライブラリプロジェクトでは使用できません。

正しいことはNuGetを使用することだと思います

Install-Package Microsoft.AspNet.Mvc -Version 3.0.20105.1

ただし、ベストプラクティスは何であり、このようにNuGetを使用する際の落とし穴はありますか?たとえば、すべてのASP.Net MVC Webプロジェクトを切り替えて、GACにdllをbinデプロイする代わりに、NuGetからこのパッケージを利用する必要がありますか?

4

1 に答える 1

8

MVC4プロジェクトでも同様のことを行いました。

NuGetを使用してMVCをインストールし、プロジェクトでパッケージの復元を有効にして、.nugetフォルダーをリポジトリにコミットしました。http://blog.davidebbo.com/2011/08/easy-way-to-set-up-nuget-to-restore.html

Install-Package Microsoft.AspNet.Mvc 
Install-Package NuGetPowerTools
Enable-PackageRestore 

プロジェクトがビルドサーバー上にビルドされると、不足しているパッケージがnugetからダウンロードされ、デプロイ時に自動的にbinディレクトリに含まれます。

bin deployメソッドを使用して必要なアセンブリをリポジトリにコミットするのではなく、あなたのアプローチが正しいと思います。

于 2012-09-12T11:35:15.253 に答える