7

我在 Visual Studio 2012 中安装了“ASP.NET 和 Web 工具 2013.1”。

我有一个解决方案,它有一个带有以下项目类型 guid 的 ASP.NET MVC 4 项目:

<ProjectTypeGuids>
  {E3E379DF-F4C6-4180-9B81-6769533ABE47};
  {349c5851-65df-11da-9384-00065b846f21};
  {fae04ec0-301f-11d3-bf4b-00c04f79efbc}
</ProjectTypeGuids>

这些指南适用于: ASP.NET MVC 4.0 Web 应用程序 Windows (C#)

这是创建新 ASP.NET 4.0 项目时的常用配置。它工作正常。

问题是,出于某种奇怪的原因,每当我打开我的解决方案时,第一个 GUID (ASP.NET MVC 4.0) 都会从 .csproj 文件中删除,因此我丢失了所有相关的工具。

无论我如何尝试编辑它:

  • 如果我关闭解决方案并手动编辑此文件,添加缺少的 GUID,当我再次打开它时,GUID 将被删除
  • 如果我卸载项目,编辑 .csproj 并重新加载它,GUID 也会被删除。
  • 我在版本控制(SVN)下有这个项目,所以我也尝试关闭 VS,更新 SVN 中的文件(使用 Tortoise)并重新打开解决方案。你知道吗?打开解决方案时删除 GUID !!!

如果我使用 ASP.NET MVC 4.0 项目创建一个新解决方案,它可以正常工作,并且保留 GUID。

知道为什么会发生这种情况以及如何解决吗?

更新

如果我在安全模式下打开 VS,这不会发生。所以我怀疑它一定是一个扩展,但我不知道如何发现哪个是冒犯性的扩展。有没有办法知道哪个扩展可以对此负责(除了卸载/尝试周期......)

4

1 回答 1

0

我为这个问题找到了一个临时的解决方法:

  1. 在 Visual Studio 中右键单击 MVC 项目,然后选择“卸载项目”

  2. 右键单击项目并选择“编辑 YourProjectName.csproj”

  3. 将 ProjectTypeGuids 标记的内容替换为以下内容并保存文件更改:

    {E3E379DF-F4C6-4180-9B81-6769533ABE47};{349c5851-65df-11da-9384-00065b846f21};{fae04ec0-301f-11d3-bf4b-00c04f79efbc}

  4. 打开 Window Explorer 并找到 csproj 文件。打开它的属性并将其标记为只读。

  5. 在 Visual Studio 中,右键单击项目并选择重新加载项目。系统将提示您另存为 csproj 文件。出现时点击取消。

  6. 返回 Windows 资源管理器并取消只读标志。

只要你在 Visual Studio 中打开了这个项目,它就会认为它是一个 MVC 项目,并且你可以选择添加视图和控制器。切换项目或重新启动 Visual Studio 后,您必须再次执行此操作。

于 2015-05-22T19:40:24.130 回答