【问题标题】:Add as link intellisense for Views添加为视图的链接智能感知
【发布时间】:2019-02-15 08:37:54
【问题描述】:

我正在尝试通过使用 VS2015 中的“添加为链接”功能在项目之间共享一些视图,但链接视图在 VS 中出现损坏,即使它在网站上运行良好。

有没有办法让智能感知和“转到定义”等功能适用于链接视图?

我可以用一个新的解决方案/项目重现这个:

  • 将 Home/Index.cshtml 移动到其他文件夹(目前我使用的是解决方案文件夹,但将文件移动到哪里似乎并不重要)
  • 从首页删除Index.cshtml/
  • 从主页/右键单击并“添加现有项目”
  • 从解决方案文件夹中选择 Index.cshtml,但从下拉按钮中选择“添加为链接”
  • 在链接的 Index.cshtml 上选择属性“复制到输出目录 = 始终复制”

该网站可以正常工作,但在 VS2015 中,视图随后出现损坏,并且智能感知不起作用。

这将是跨多个项目共享视图的好方法,但如果 VS 认为视图已损坏,则开发过程会很痛苦。

有什么建议吗?有没有更好的方法来跨项目共享视图?

【问题讨论】:

    标签: asp.net-mvc visual-studio-2015


    【解决方案1】:

    这是我让它工作的痛苦方式:

    1. 卸载解决方案
    2. 创建一个包含我要复制的视图的项目的副本。我们将新项目称为 [SharedItems]。
    3. 重命名.csproj 文件并手动编辑.csproj 文件并将旧名称替换为新名称(可能是可选的,但更容易)
    4. 加载解决方案并添加新项目。
    5. 删除所有不需要的文件。
    6. 重命名新项目中的命名空间。
    7. 构建只是为了确保它正常工作并且 Intellisense 工作正常。
    8. 删除您打算在原始项目中链接的文件并创建链接。
    9. 在所有原始项目上安装了MSBuild.WebApplication.CopyContentLinkedFiles NuGet 包,以自动制作链接文件的物理副本。

    现在我可以在模板项目中进行所有编辑,而无需在任何地方维护多个副本。

    两大缺点:

    • 我必须在对任何链接对象进行编辑后进行构建,然后才能看到更改。
    • 我只需要在 [SharedItems] 项目中打开实际的 .cshtml 文件。打开链接文件会中断 Intellisense,直到您将其关闭并直接打开它。这对于 Resharper 的 Search Everywhere 功能尤其烦人,因为它会建议链接文件。

    【讨论】:

      猜你喜欢
      • 2016-11-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-11-21
      • 1970-01-01
      • 2018-05-31
      • 2011-02-25
      • 1970-01-01
      相关资源
      最近更新 更多