当前项目:
[DbName].edmx
/Models/
文件
当试图构建项目以进行测试时,我收到一个突然错误(CS1566),读取资源Models.[DbName].csdl
时出错,并且找不到路径的一部分。果然,\edmxResourcesToEmbed\Models\
目录中缺少整个\obj\Debug\
文件夹。
如何重建这个?这是我的第一个数据库第一个项目,其他一切都是代码优先的,谷歌也没有给我任何回报。
答案 0 :(得分:-1)
由于StackOverflow能够链接您通常认为不相关的其他帖子,我能够解决这个问题。
这个问题也是因为我采用了我需要的代码优先工作流,以便首先使用多项目存储库模式来防止代码中的错误。具体来说,我修改了*.csproj
个文件,以便始终删除我构建/发布的项目的bin
和obj
目录:
<Target Name="BeforeBuild">
<!-- Remove obj folder -->
<RemoveDir Directories="$(BaseIntermediateOutputPath)" />
<!-- Remove bin folder -->
<RemoveDir Directories="$(BaseOutputPath)" />
</Target>
为什么呢?因为当我没有这样做时,任何构建/发布代码优先项目的尝试都会因“多个冲突的web.config文件”而失败。我首先没有,但这就是抱怨的。所以习惯上,我只是设计每个项目,在构建/发布之前删除这两个目录,以避免显示停止错误。
基本上:系统通过清除发布过程所需的bin
文件,每次构建或发布时都会给自己一个致命的发型。感谢我和代码优先的多项目存储库模式解决方案应用于数据库优先项目。甜。 facepalm bridgepinch smh
当我第一次发帖时,我<{3}}很快发布。该回复的前半部分是有意义的 - 选择*.edmx
文件并更改Build Action
值,但后半部分让我感到困惑,直到我实际打开*.edmx
文件并点击空出现的模型图的一部分 - 突然,我的属性侧边栏变为完全不同的东西,其中 具有需要更改的Metadata Artifact Processing
值。
按照这些说明,然后关闭VS,然后删除我的*.csproj
修改,然后打开项目备份,然后构建,然后反转这些指令并实际发布,我能够扭转我的伤害无意中完成了。
所以,对于有同样问题的其他人来说,仅供参考。