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

如何在csproj中检测XAML Designer模式并按需引入设计资源库?

判断Visual Studio XAML设计器模式并引入设计资源的MSBuild配置步骤

你预期的思路是对的,但需要修正Condition里的判断属性——MSBuild层面没有$(XamlDesignerMode)这个内置属性,要使用专门的设计时构建属性来实现需求,具体步骤如下:

  • 右键你的WPF项目,选择「编辑项目文件」,打开.csproj文件
  • 在文件中添加以下ItemGroup配置(二选一即可):
    针对传统非SDK项目,使用$(DesignTimeBuild)属性:
    <ItemGroup>
      <ProjectReference Condition=" '$(DesignTimeBuild)' == 'true' "
                        Include="..\DesignerResource\DesignerResource.csproj" />
    </ItemGroup>
    
    针对较新的SDK-style项目,推荐使用$(IsDesignTimeBuild)属性:
    <ItemGroup>
      <ProjectReference Condition=" '$(IsDesignTimeBuild)' == 'true' "
                        Include="..\DesignerResource\DesignerResource.csproj" />
    </ItemGroup>
    
  • 保存项目文件,重新加载项目即可

补充说明:$(XamlDesignerMode)是WPF运行时层面的属性,只能在代码中通过DesignerProperties.GetIsInDesignMode()获取,无法在MSBuild编译阶段用来判断环境。而$(DesignTimeBuild)/$(IsDesignTimeBuild)是Visual Studio触发设计时构建时自动设置的MSBuild属性,刚好能满足你「仅在XAML设计器模式下引入资源库」的需求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.20 06:52:33