我运行以下内容来构建我的解决方案(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配置中构建的。
为什么?我在这里错过了一些简单的东西吗?
答案 0 :(得分:1)
添加/ p:Platform =“任何CPU”参数强制构建调试配置
项目的输出目录与项目文件OutputPath
中PropertyGroup
的{{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可以解决问题。