我有一个ASP.NET MVC 4项目的解决方案,其项目类型为guids:
<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.
知道为什么会发生这种情况以及如何解决这个问题?
UPDATE
如果我在安全模式下打开VS,则不会发生这种情况.所以我怀疑它必须是一个扩展,但我不知道如何发现哪个是冒犯性扩展.有没有办法知道哪个扩展可以负责这个(除了卸载/尝试周期……)
解决方法
>右键单击Visual Studio中的MVC项目,然后选择“卸载项目”
>右键单击项目并选择“Edit YourProjectName.csproj”
>使用以下内容替换ProjectTypeGuids标记的内容并保存文件更改:
{E3E379DF-F4C6-4180-9B81-6769533ABE47}; {349c5851-65df-11DA-9384-00065b846f21}; {fae04ec0-301f-11D3-bf4b-00c04f79efbc}
>打开Window Explorer并找到csproj文件.在其上打开属性并将其标记为只读.
>在Visual Studio中右键单击项目,然后选择“重新加载项目”.系统将提示您保存为csproj文件.出现时点击取消.
>返回Windows资源管理器并取消只读标志.
只要你在Visual Studio中打开这个项目,就会认为它是一个MVC项目,你可以选择添加视图和控制器.切换项目或重新启动Visual Studio后,您将不得不再次执行此操作.