8

我使用 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>
4

7 回答 7

9

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

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

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

于 2014-06-04T11:12:47.297 回答
7

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

于 2014-08-07T15:37:03.980 回答
2

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

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

于 2014-11-10T10:47:20.757 回答
2

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

<ProjectTypeGuids></ProjectTypeGuids>

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

于 2014-04-06T02:42:01.493 回答
0

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

于 2015-01-25T11:10:40.207 回答
0

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

其他解决方案都不适合我,但在使用安装盘修复 VS2010后,它又开始工作了。

于 2015-04-20T12:09:40.363 回答
0

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

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

于 2015-02-05T04:10:23.413 回答