我正在尝试做什么
我目前有一个项目文件,其中包含一个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元数据文件没有被嵌入?
1 回答
使用您的示例,在安装的Windows 8 VS2012上,我能够使用Package.bat生成包,并且所有生成的程序集都包含所有EF元数据文件 . 在Readme.txt中,您提到了MSDeploy
从您的问题看起来您有MSBuild的问题 . 您可以验证运行构建时没有旧的TestEntityEdmx.Hackaround.dll位于TestEntityEdmx \ obj \ Release ...文件夹中 .