Visual studio MSBuild与Visual Studio生成-生成目标

Visual studio MSBuild与Visual Studio生成-生成目标,visual-studio,msbuild,Visual Studio,Msbuild,MSBuild报告了一些奇怪的情况: D:\Test>msbuild Test.sln Microsoft(R)生成引擎版本 15.1.1012.6693版权所有(C)微软公司。版权所有 在此解决方案中一次构建一个项目。使能 并行生成,请添加“/m”开关。建造于2017年7月1日开始 下午5:33:14。节点1上的项目“D:\Test\Test.sln”(默认目标)。 D:\Test\Test.sln.metaproj:错误MSB4126:指定的解决方案无效 配置“调试| x64”无效。请指定有

MSBuild报告了一些奇怪的情况:

D:\Test>msbuild Test.sln Microsoft(R)生成引擎版本 15.1.1012.6693版权所有(C)微软公司。版权所有

在此解决方案中一次构建一个项目。使能 并行生成,请添加“/m”开关。建造于2017年7月1日开始 下午5:33:14。节点1上的项目“D:\Test\Test.sln”(默认目标)。 D:\Test\Test.sln.metaproj:错误MSB4126:指定的解决方案无效 配置“调试| x64”无效。请指定有效的解决方案 使用配置和平台属性进行配置(例如。 MSBuild.exe Solution.sln/p:Configuration=Debug/p:Platform=“任意CPU”) 或者将这些属性留空以使用默认解决方案 配置[D:\Test\Test.sln]已完成建筑项目 “D:\Test\Test.sln”(默认目标)--失败

所以,Debug | x64无效

问题在于:

D:\Test>查找“X64”Test.sln

----------TEST.SLN

这不是一个现有的目标

提到的文件(D:\Test\Test.sln.metaproj)也不存在(也检查了隐藏文件)

sln文件以DEBUG | AnyCPU和RELEASE | AnyCPU为目标

Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio 15
VisualStudioVersion = 15.0.26430.14
MinimumVisualStudioVersion = 10.0.40219.1
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Test", "Test\Test.csproj", "{63FA3D37-7672-4C5F-BAE2-43CCF8ABC7E4}"
EndProject
Global
    GlobalSection(SolutionConfigurationPlatforms) = preSolution
        Debug|Any CPU = Debug|Any CPU
        Release|Any CPU = Release|Any CPU
    EndGlobalSection
    GlobalSection(ProjectConfigurationPlatforms) = postSolution
        {63FA3D37-7672-4C5F-BAE2-43CCF8ABC7E4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
        {63FA3D37-7672-4C5F-BAE2-43CCF8ABC7E4}.Debug|Any CPU.Build.0 = Debug|Any CPU
        {63FA3D37-7672-4C5F-BAE2-43CCF8ABC7E4}.Release|Any CPU.ActiveCfg = Release|Any CPU
        {63FA3D37-7672-4C5F-BAE2-43CCF8ABC7E4}.Release|Any CPU.Build.0 = Release|Any CPU
    EndGlobalSection
    GlobalSection(SolutionProperties) = preSolution
        HideSolutionNode = FALSE
    EndGlobalSection
EndGlobal
那么为什么MSBuild会被混淆呢


作为个人注意事项,看起来自从MS加入.NET Core计划以来,整个构建系统就变得一团糟,设置断开连接等等。

事实证明,这与环境变量有关(好像我们还没有足够的配置文件)

运行cmd.exe时,如果选择x86或x64,它将设置一个环境变量

还有一条不成文的规则说:

  • x86是任何CPU。。或x86
  • x64是x64,但不是任何CPU

感谢您在此处分享您的解决方案,您可以将其标记为答案,这样它就可以帮助其他遇到相同问题的社区成员。在允许我这样做之前,我必须提前2天;完成:)