【问题标题】:Entity Framework does not embed metadata into dll实体框架不会将元数据嵌入到 dll 中
【发布时间】:2013-04-18 01:23:43
【问题描述】:

我想要做什么

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

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

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

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

实际问题

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

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

简单的自包含正确示例

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

【问题讨论】:

    标签: c# entity-framework msbuild teamcity embedded-resource


    【解决方案1】:

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

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

    从您的问题看来,您的 MSBuild 存在问题。 您能否在运行构建时验证您没有旧的 TestEntityEdmx.Hackaround.dll 位于 TestEntityEdmx\obj\Release... 文件夹中。

    【讨论】:

    • 在我的帖子中,我的意思是(旧的没有反映)SSCCEworkaround 的一个例子。 readme.txt 包含产生实际缺陷的实际指令。我重新运行了我硬盘上的 exact 文件(在清理了所有 binobj 之后),它似乎嵌入正确。似乎他们可能在最近的 VS 工具更新中解决了这个问题。
    猜你喜欢
    • 2020-05-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-08-22
    • 1970-01-01
    • 2014-10-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多