You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

能否根据DEBUG/RELEASE构建配置自动包含或排除项目?

自动根据构建配置包含/排除测试项目

方法1:修改解决方案文件(.sln)

直接编辑解决方案的.sln文件,给测试项目添加加载条件,让它仅在DEBUG配置下显示并参与构建:

找到解决方案中对应ClientPeer.TestConsole项目的条目(格式如下):

Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ClientPeer.TestConsole", "ClientPeer.TestConsole\ClientPeer.TestConsole.csproj", "{PROJECT_GUID}"
EndProject

修改为带条件的版本:

Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ClientPeer.TestConsole", "ClientPeer.TestConsole\ClientPeer.TestConsole.csproj", "{PROJECT_GUID}"
	Condition = '$(Configuration)|$(Platform)' == 'Debug|AnyCPU'
EndProject

注意替换{PROJECT_GUID}为项目实际的GUID,Debug|AnyCPU可根据你的平台配置调整(比如Debug|x64)

方法2:修改测试项目的.csproj文件

若不想改动解决方案,可在ClientPeer.TestConsole.csproj中添加编译条件,让项目在RELEASE配置下不参与构建:

在项目根<Project>节点下添加:

<PropertyGroup>
  <Build Condition="'$(Configuration)' != 'Debug'">false</Build>
  <DeployOnBuild Condition="'$(Configuration)' != 'Debug'">false</DeployOnBuild>
</PropertyGroup>

补充说明

  • 方法1会让测试项目在RELEASE配置下直接从解决方案资源管理器中消失,彻底规避编译报错。
  • 方法2中项目仍会显示在解决方案里,但RELEASE时不会编译,结合你已用#if DEBUG包裹的InternalsVisibleTo特性,不会触发内部访问权限相关错误。

内容的提问来源于stack exchange,提问作者IAbstract

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.10 15:20:49