我使用UnityVS生成Visual Studio项目,但项目文件*.CSharp.csproj无法打开。
我发现问题是 ProjectTypeGuids 使用未知类型: E097FAD1-6243-4DAD-9C02-E9B9EFC3FFC1 ,谷歌也无法告诉我那是什么。
有人有同样的问题吗?
项目文件是:
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
<ProductVersion>10.0.20506</ProductVersion>
<SchemaVersion>2.0</SchemaVersion>
<ProjectGuid>{70B74EA9-8515-0DD0-B4E6-E001BFFC1148}</ProjectGuid>
<OutputType>Library</OutputType>
<RootNamespace></RootNamespace>
<AssemblyName>Assembly-CSharp</AssemblyName>
<FileAlignment>512</FileAlignment>
<ProjectTypeGuids>{E097FAD1-6243-4DAD-9C02-E9B9EFC3FFC1};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
<TargetFrameworkIdentifier>.NETFramework</TargetFrameworkIdentifier>
<TargetFrameworkVersion>v3.5</TargetFrameworkVersion>
<TargetFrameworkProfile>Unity Subset v3.5</TargetFrameworkProfile>
<CompilerResponseFile></CompilerResponseFile>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<DebugType>pdbonly</DebugType>
<Optimize>false</Optimize>
<OutputPath>Temp\UnityVS_bin\Debug\</OutputPath>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
<DefineConstants>DEBUG;TRACE;UNITY_STANDALONE_WIN;ENABLE_MICROPHONE;ENABLE_TEXTUREID_MAP;ENABLE_AUDIO_FMOD;UNITY_STANDALONE;ENABLE_MONO;ENABLE_TERRAIN;ENABLE_SUBSTANCE;ENABLE_GENERICS;ENABLE_MOVIES;ENABLE_WWW;ENABLE_IMAGEEFFECTS;ENABLE_WEBCAM;RENDER_SOFTWARE_CURSOR;ENABLE_NETWORK;ENABLE_PHYSICS;ENABLE_CACHING;ENABLE_CLOTH;ENABLE_SHADOWS;ENABLE_AUDIO;ENABLE_DUCK_TYPING;ENABLE_SINGLE_INSTANCE_BUILD_SETTING;UNITY_4_2_2;UNITY_4_2;ENABLE_PROFILER;UNITY_EDITOR;UNITY_EDITOR_WIN;UNITY_TEAM_LICENSE</DefineConstants>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<DebugType>pdbonly</DebugType>
<Optimize>false</Optimize>
<OutputPath>Temp\UnityVS_bin\Release\</OutputPath>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
<DefineConstants>TRACE;UNITY_STANDALONE_WIN;ENABLE_MICROPHONE;ENABLE_TEXTUREID_MAP;ENABLE_AUDIO_FMOD;UNITY_STANDALONE;ENABLE_MONO;ENABLE_TERRAIN;ENABLE_SUBSTANCE;ENABLE_GENERICS;ENABLE_MOVIES;ENABLE_WWW;ENABLE_IMAGEEFFECTS;ENABLE_WEBCAM;RENDER_SOFTWARE_CURSOR;ENABLE_NETWORK;ENABLE_PHYSICS;ENABLE_CACHING;ENABLE_CLOTH;ENABLE_SHADOWS;ENABLE_AUDIO;ENABLE_DUCK_TYPING;ENABLE_SINGLE_INSTANCE_BUILD_SETTING;UNITY_4_2_2;UNITY_4_2;ENABLE_PROFILER;UNITY_EDITOR;UNITY_EDITOR_WIN;UNITY_TEAM_LICENSE</DefineConstants>
</PropertyGroup>
<ItemGroup>
<Reference Include="mscorlib" />
<Reference Include="System" />
<Reference Include="System.XML" />
<Reference Include="System.Core" />
<Reference Include="Boo.Lang" />
<Reference Include="UnityScript.Lang" />
<Reference Include="UnityEngine">
<HintPath>Library\UnityAssemblies\UnityEngine.dll</HintPath>
</Reference>
<Reference Include="UnityEditor">
<HintPath>Library\UnityAssemblies\UnityEditor.dll</HintPath>
</Reference>
</ItemGroup>
<ItemGroup>
<Compile Include="Assets\Scripts\scaleform\SFCamera.cs" />
<Compile Include="Assets\Scripts\scaleform\SFCxForm.cs" />
<Compile Include="Assets\Scripts\scaleform\SFDisplayInfo.cs" />
<Compile Include="Assets\Scripts\scaleform\SFDisplayMatrix.cs" />
<Compile Include="Assets\Scripts\scaleform\SFEvents.cs" />
<Compile Include="Assets\Scripts\scaleform\SFGamepad.cs" />
<Compile Include="Assets\Scripts\scaleform\SFInitParams.cs" />
<Compile Include="Assets\Scripts\scaleform\SFKey.cs" />
<Compile Include="Assets\Scripts\scaleform\SFLifecycleEvent.cs" />
<Compile Include="Assets\Scripts\scaleform\SFManager.cs" />
<Compile Include="Assets\Scripts\scaleform\SFManager_Imports.cs" />
<Compile Include="Assets\Scripts\scaleform\SFMovie.cs" />
<Compile Include="Assets\Scripts\scaleform\SFMovie_Imports.cs" />
<Compile Include="Assets\Scripts\scaleform\SFRTT.cs" />
<Compile Include="Assets\Scripts\scaleform\SFSentinal.cs" />
<Compile Include="Assets\Scripts\scaleform\SFValue.cs" />
<Compile Include="Assets\Scripts\scaleform\SFValue_Imports.cs" />
<Compile Include="Assets\Scripts\UI\MyCamera.cs" />
</ItemGroup>
<Import Project="$(MSBuildExtensionsPath)\SyntaxTree\UnityVS\2012\UnityVS.CSharp.targets" />
</Project>
这通常发生在三种不同的情况下:
还有一种情况是你没有安装Unity所需的.NET 3.5框架(Unity的类库是.NET 3.5的子配置文件),但错误消息通常是明确的。
我通过再次删除并安装 UnityVS 解决了此问题。 UnityVS安装程序的“修复”功能没有改变任何东西,所以我需要先完全卸载它。
您可以手动删除 proj 文件中的这些标签。
<ProjectTypeGuids></ProjectTypeGuids>
错误消息应该消失了,但您无法使用调试功能。我仍在寻找解决方案。
对我有用的解决方案是在我的 Unity 项目中强制重新导入 Visual Studio Tools for Unity 资产(通过导入自定义包并导航到 Program Files 文件夹中的包)。
我认为即使我重新安装该工具并以通常的方式添加它,该工具的旧版本在我的 Unity 项目中也没有被替换。
我知道这是一个老问题,但这花了我大约一天的时间来解决。对于我的用例:
There is a missing project subtype. Subtype: '{E097FAD1-6243-4DAD-9C02-E9B9EFC3FFC1}' is unsupported by this installation.
完全删除 UnityVS 并重新安装对我使用 Visual Studio 2013 Ultimate 很有帮助。还删除并重新导入了 Unity 项目中的 UnityVS 包,不确定是否需要这样做。
我收到错误“此项目与当前版本的 Visual Studio 不兼容”。 “修复”无法解决问题,但在没有运行“devenv.exe”进程的情况下卸载并重新安装才是解决方案。我使用的是 Visual Studio 2013 Community,并通过 Unity 工具栏打开了项目(Visual Studio Tools\Open in Visual Studio)。
@Jb Evain - 另外感谢您在我自己的类似问题上为我指明了正确的方向。
卸载未使用的另一个版本的 Visual Studio(2013 Express)后,我在 Visual Studio 2010 Professional 中遇到了同样的问题。
其他解决方案都不适合我,但是在使用安装盘对 VS2010 进行修复后,它再次开始工作。