添加/ p:平台="任何CPU"参数强制在Debug配置中构建

时间:2018-05-17 18:47:01

标签: c# msbuild visual-studio-2017 windows-10 roslyn

我运行以下内容来构建我的解决方案(C#中的所有项目):

MSBuild.exe foo.sln /t:Build /p:Configuration=Release /p:Platform="Any CPU"

它在Debug配置中构建它。如果我删除对"任何CPU"

的引用
MSBuild.exe foo.sln /t:Build /p:Configuration=Release

构建是在Release配置中构建的。

为什么?我在这里错过了一些简单的东西吗?

2 个答案:

答案 0 :(得分:1)

  

添加/ p:Platform =“任何CPU”参数强制构建调试配置

项目的输出目录与项目文件OutputPathPropertyGroup的{​​{1}}属性相关。

根据您的描述,您可能没有在项目文件中正确配置目标平台和foo.csproj,例如:

OutputPath

如果我们为Release配置提供 <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' "> <PlatformTarget>AnyCPU</PlatformTarget> <DebugType>pdbonly</DebugType> <Optimize>true</Optimize> <OutputPath>bin\Debug\</OutputPath> <DefineConstants>TRACE</DefineConstants> <ErrorReport>prompt</ErrorReport> <WarningLevel>4</WarningLevel> </PropertyGroup> ,那么我们将在Debug文件夹中获取输出。

因此,要解决此问题,您需要检查项目文件中的属性<OutputPath>bin\Debug\</OutputPath>,确保它与目标平台匹配。

希望这有帮助。

答案 1 :(得分:0)

回答我自己的问题。虽然我试图找到一些复杂的东西,但是我的解决方案出了问题(例如梳理了十几个.csproj文件),但这个问题简直令人尴尬。

在Solution / Configuration Manager中,对于Release / AnyCPU设置,某些项目标有Debug(不确定原因 - 解决方案可能已有十年之久)。将它们设置为Release可以解决问题。