2

场景第一:-

我正在使用 Entity Framework 进行一些查询,以构建我的模型我正在 MVC3 项目中尝试 DevArt Entity Developer。我构建应用程序上传到 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" />

然而,这有它自己的一系列问题,首先是应用程序没有创建模型文件夹,它只是创建文件/bin/Models.jcps01.msl,当然,由于文件不包含在项目/解决方案中,MSDeploy 没有部署它:|

有没有人在使用 MSDeploy 和 DevArt 之前取得过任何成功,如果是这样,您是否必须对文件的解决方案进行任何更改以复制到输出目录等?

4

1 回答 1

2

这是由于构建服务器没有安装 DevArt Entity Developer,通常部署 .cs 文件就足够了,但对于 DevArt,我们也需要在构建服务器上安装他们的工具。

一旦安装了它,事情就开始工作了(即生成映射文件并自动添加到程序集文件中)。

令人惊讶的是,MSBuild 从未抛出关于没有此应用程序或无法读取外部文件格式的错误。

于 2012-07-02T15:44:35.373 回答