UnityVS Visual Studio打不开

问题描述 投票:0回答:10

我使用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>
visual-studio unity-game-engine unityvs
10个回答
9
投票

这通常发生在三种不同的情况下:

  • 用户正在使用 Visual Studio 的试用版。目前 UnityVS 需要完整的 Visual studio。
  • 安装无法重新创建 Visual Studio 扩展缓存。如果存在杂散的 devenv.exe 进程,我们就会看到这种情况发生。确保没有 devenv.exe 进程正在运行,然后重新安装 UnityVS。
  • 用户在GAC中安装了旧的破解版UnityVS,与当前的UnityVS冲突。

还有一种情况是你没有安装Unity所需的.NET 3.5框架(Unity的类库是.NET 3.5的子配置文件),但错误消息通常是明确的。


7
投票

我通过再次删除并安装 UnityVS 解决了此问题。 UnityVS安装程序的“修复”功能没有改变任何东西,所以我需要先完全卸载它。


2
投票

您可以手动删除 proj 文件中的这些标签。

<ProjectTypeGuids></ProjectTypeGuids>

错误消息应该消失了,但您无法使用调试功能。我仍在寻找解决方案。


2
投票

对我有用的解决方案是在我的 Unity 项目中强制重新导入 Visual Studio Tools for Unity 资产(通过导入自定义包并导航到 Program Files 文件夹中的包)。

我认为即使我重新安装该工具并以通常的方式添加它,该工具的旧版本在我的 Unity 项目中也没有被替换。


1
投票

我知道这是一个老问题,但这花了我大约一天的时间来解决。对于我的用例:

  • 我有一个 Unity 2021.1.x 项目。我升级到 2021.2.x(实际上是完全全新的安装 - 我重新安装了 Windows)和 Visual Studio 2022 17.2 预览版。
  • 我从根目录删除了所有 .sln 和 .csproj 文件(当然要备份它们)。
  • 我重新生成了所有 csproj 文件(和 sln)。在Unity中编译工作正常,但在VS中打开任何文件都会产生错误:
There is a missing project subtype.
Subtype: '{E097FAD1-6243-4DAD-9C02-E9B9EFC3FFC1}' is unsupported by this installation.
  • 从 Visual Studio 安装程序中强制卸载并重新安装工作负载“使用 Unity 进行游戏开发”有效,随后重新生成项目和解决方案文件没有出现任何问题。

0
投票

完全删除 UnityVS 并重新安装对我使用 Visual Studio 2013 Ultimate 很有帮助。还删除并重新导入了 Unity 项目中的 UnityVS 包,不确定是否需要这样做。


0
投票

我收到错误“此项目与当前版本的 Visual Studio 不兼容”。 “修复”无法解决问题,但在没有运行“devenv.exe”进程的情况下卸载并重新安装才是解决方案。我使用的是 Visual Studio 2013 Community,并通过 Unity 工具栏打开了项目(Visual Studio Tools\Open in Visual Studio)。

@Jb Evain - 另外感谢您在我自己的类似问题上为我指明了正确的方向。


0
投票

卸载未使用的另一个版本的 Visual Studio(2013 Express)后,我在 Visual Studio 2010 Professional 中遇到了同样的问题。

其他解决方案都不适合我,但是在使用安装盘对 VS2010 进行修复后,它再次开始工作。


0
投票
在 Unity 包管理器中删除可视化编辑包后,不再出现此错误。到目前为止没有错误。


0
投票
就我而言,问题是我删除了所需的 .Net 包。我通过打开 Visual Studio 安装程序并再次选中“使用 Unity 进行游戏开发”框来解决此问题,这样做将再次下载所有丢失的包。

© www.soinside.com 2019 - 2024. All rights reserved.