Visual studio 2013 错误MSB4057:目标“;v8";项目中不存在

Visual studio 2013 错误MSB4057:目标“;v8";项目中不存在,visual-studio-2013,compiler-errors,v8,arangodb,msbuild-target,Visual Studio 2013,Compiler Errors,V8,Arangodb,Msbuild Target,我正在尝试构建V8,作为使用官方软件和遵循官方软件的一部分 编译所有v8*目标失败(v8build.bat): 错误MSB4057:项目中不存在目标“v8” 如果我在Visual Studio中打开解决方案文件,它如下所示: 我可以在VS中构建v8,v8_libbase和v8_libplatform很好 Windows 7 64位 Visual Studio 2013终极版 Cygwin2.2.0 cmake 3.3.1 如果目标/项目位于解决方案文件夹中,则指定该目标/项目的正确方法是:

我正在尝试构建V8,作为使用官方软件和遵循官方软件的一部分

编译所有v8*目标失败(
v8build.bat
):

错误MSB4057:项目中不存在目标“v8”

如果我在Visual Studio中打开解决方案文件,它如下所示:

我可以在VS中构建
v8
v8_libbase
v8_libplatform
很好

  • Windows 7 64位
  • Visual Studio 2013终极版
  • Cygwin2.2.0
  • cmake 3.3.1

如果目标/项目位于解决方案文件夹中,则指定该目标/项目的正确方法是:

msbuild all.sln /t:PATH\TO\PROJECT
但是在
(工具)
(gyp)
的情况下,这是不可能的,因为
msbuild
无法处理目标参数
/t
中的括号

因此,要么删除
()
并像
tools\gyp\v8
那样指定路径,要么完全删除解决方案文件夹。如果解决方案是扁平的,
/t:v8
将起作用

不幸的是,用括号包装文件夹名称以及生成non-flat.sln都是用gyp硬编码的,gyp生成了my
all.sln
。没有控制是否创建解决方案文件夹的开关。如果已知VisualStudio的目标版本支持这种嵌套,它将创建它们

解决方法:强制在gyp中生成展开解决方案,请参见

向Microsoft/msbuild和Google/gyp报告的错误:

@多斯巴特,帮了我很多忙,谢谢你

在VS2013中使用

msbuild All.sln /p:Project=v8;Configuration=Release;Platform=x64
你可以跑

set MSBuildEmitSolution=1
msbuild All.sln /t:v8
然后在生成的
All.sln.metaproj
文件中搜索要生成的所有项目的确切目标名称(
v8
可以有一个类似于
\u tools\u\\u gyp\uv8
的名称。之后,您可以构建项目

msbuild All.sln /t:"_tools_\_gyp_\v8" /p:Configuration=Release /p:Platform=x64

我很匆忙-这是重建所有的解决方案。我不确定这是否是一个选项。谢谢这非常有帮助。我想让其他人知道的问题是,如果您的项目名为“hello.world”,那么msbuild的目标实际上是“hello\u world”,用“\u”替换“.”也让我明白了。此外,没有“构建”目标,只有“重建”。e、 g/t:你好,世界:重建
msbuild All.sln /t:"_tools_\_gyp_\v8" /p:Configuration=Release /p:Platform=x64