我希望有人能帮我解决这个烦恼。
在工作中,我们有两个独立的网站项目,它们共享一个共同的 MasterPage。MasterPage 嵌入在两个项目都引用的类库中。我们使用一个自定义的 VirtualPathProvider,它允许我们在每个项目中引用 MasterPage。这在运行时/编译时工作正常,但它破坏了 aspx 页面标记内的智能感知。
当我将 MasterPageFile 属性设置为“~/EmbeddedMasterPage.Master”时,Visual Studio 会在其下方显示一个红色波浪线错误,显示“找不到路径”,并显示一个目录表明它正在尝试在网站项目中查找该文件(而不是类库项目)。由于 Visual Studio 无法确定 MasterPage 在哪里,它会导致所有智能感知中断。它不会显示任何标签。事实上,它能给我的唯一智能是基本的 html 标签。通过谷歌搜索,我能找到的唯一信息是 VS 在嵌入式 MasterPage 中找不到根 html/head/body 标记。不过,我找不到修复它的方法。
这发生在 Visual Studio 2008 和 2010 中。
更新(2011 年 4 月 10 日)
目前,我必须将嵌入的母版页复制到实际的站点项目中才能使其正常工作。我将文件设置为不编译/复制,它工作正常。