2

最初のシナリオ:-

Entity Frameworkを使用していくつかのクエリを実行し、モデルを構築しています。MVC3プロジェクト内でDevArtEntityDeveloperを試しています。アプリのアップロードをSVNにビルドすると、継続的インテグレーションサーバーがそれを取得し(Bamboo)、MSDeployを使用してビルドおよびデプロイします。

ただし、MSDeployはファイルを展開する前に事前にファイルについて知る必要があるため、何らかの理由で展開に問題があるように見えます。これは、'.csdl', '.ssdl', or '.msl'ファイルがリモートマシンに展開されていないことを意味します。

System.Data.MetadataException: Unable to load the specified metadata resource.

ここで、DevArtをEmbedInOutputAssemblyからCopyToOutputDirectoryに設定すると、web.configファイルがフォームを変更します

<add name="jcps01EntitiesConnectionString" connectionString="metadata=res://*/Models.jcps01.csdl|res://*/Models.jcps01.ssdl|res://*/Models.jcps01.msl;provider=System.Data.SqlClient;provider connection string=&quot;Data Source=XXXXX;Initial Catalog=jcps01;Integrated Security=False;Persist Security Info=True;User ID=XXXXX;Password=XXXXX&quot;"

<add name="jcps01EntitiesConnectionString" connectionString="metadata=~/bin/Models/jcps01.csdl|~/bin/Models/jcps01.ssdl|~/bin/Models/jcps01.msl;provider=System.Data.SqlClient;provider connection string=&quot;Data Source=XXXXX;Initial Catalog=jcps01;Integrated Security=False;Persist Security Info=True;User ID=XXXXX;Password=XXXXX&quot;" providerName="System.Data.EntityClient" />

ただし、これには独自の問題が伴います。1つは、アプリケーションがモデルフォルダーを作成せず、ファイルを作成するだけで/bin/Models.jcps01.mslあり、もちろん、ファイルがプロジェクト/ソリューションに含まれていないため、MSDeployはそれをデプロイしません。 :|

これまでにDevArtでMSDeployを使用して成功した人はいますか?もしそうなら、出力ディレクトリなどにコピーするためにファイルに変更を加える必要がありましたか?

4

1 に答える 1

2

これはビルド サーバーに DevArt Entity Developer がインストールされていないことが原因で、通常は .cs ファイルを展開するだけで十分ですが、DevArt の場合は、ビルド サーバーにもツールをインストールする必要がありました。

これがインストールされると、作業が開始されました (つまり、マッピング ファイルが生成され、アセンブリ ファイルに自動的に追加されました)。

驚くべきことに、このアプリケーションがないことや、外部ファイル形式を読み取れないことについて、MSBuild によってエラーがスローされることはありませんでした。

于 2012-07-02T15:44:35.373 に答える