首页 文章

实体框架不会将元数据嵌入到dll中

提问于
浏览
5

我正在尝试做什么

我目前有一个项目文件,其中包含一个EF 5模型,其中.edmx配置为将元数据嵌入到输出程序集中 .

如果我通过Visual Studio 2012运行本地程序包,则生成的程序集包含正确的资源 . 通过MSBuild手动运行包也正确地嵌入了程序集中的资源:

msbuild web.csproj /t:Package /p:Configuration=Release

当我手动检查由Visual Studio生成的程序集或MSBuild包步骤dotPeek时,我可以确认该程序包包含.csdl,.ssdl和.msl资源 .

实际问题

我手头有一台运行Microsoft Windows Server 2012和Visual Studio 2012的构建服务器 . 如果我通过Visual Studio 2012命令提示符手动运行MSBuild,使用与上面相同的命令行,则会生成一个不包含的程序集嵌入的资源 .

当我通过MSBuild执行自动程序包时,为什么我的EF元数据文件没有被嵌入?

简单的自包含正确示例

可以找到SSCCE来演示解决方法here . 该示例包含在 readme.txt 中重现错误所需的确切步骤 .

1 回答

  • 0

    使用您的示例,在安装的Windows 8 VS2012上,我能够使用Package.bat生成包,并且所有生成的程序集都包含所有EF元数据文件 . 在Readme.txt中,您提到了MSDeploy

    4)在项目上运行MSDeploy / t:package

    从您的问题看起来您有MSBuild的问题 . 您可以验证运行构建时没有旧的TestEntityEdmx.Hackaround.dll位于TestEntityEdmx \ obj \ Release ...文件夹中 .

相关问题