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

如何在Visual Studio输出路径及配置中使用$(ProjectName)等宏?

解决Visual Studio输出路径中$(ProjectName)宏不生效的方案

方案1:直接编辑项目文件并规避VS属性页干扰

用文本编辑器(如Notepad++、VS内置的“编辑项目文件”功能)打开项目文件(.csproj/.vbproj等),将<OutputPath>节点修改为:

<OutputPath>..\bin\$(Configuration)\Plugins\$(ProjectName)\</OutputPath>

保存后重新加载项目,不要通过VS的属性页修改该路径——属性页UI存在编码bug,会把$(ProjectName)转义成%24%28ProjectName%29,导致宏失效。

方案2:自定义属性替代原生宏

在项目文件的<PropertyGroup>节点中先定义一个自定义属性,再引用到输出路径里:

<PropertyGroup>
  <CustomProjectName>$(ProjectName)</CustomProjectName>
  <OutputPath>..\bin\$(Configuration)\Plugins\$(CustomProjectName)\</OutputPath>
</PropertyGroup>

自定义属性的解析逻辑更直接,能绕开VS对原生$(ProjectName)宏的错误编码问题。

方案3:用Directory.Build.props统一配置(多项目场景)

如果是解决方案下多个项目需要相同配置,在解决方案根目录创建Directory.Build.props文件,内容如下:

<Project>
  <PropertyGroup>
    <OutputPath>..\bin\$(Configuration)\Plugins\$(ProjectName)\</OutputPath>
  </PropertyGroup>
</Project>

所有子项目会自动继承该配置,且这种方式直接通过MSBuild引擎处理宏,完全避开VS属性页的编码干扰。

补充说明

$(Configuration)能正常生效,是因为VS属性页对这个常用宏的处理逻辑特殊,不会进行URL编码;而$(ProjectName)属于使用频率较低的宏,UI层的处理存在bug,导致保存时被转义。上述方案均通过MSBuild原生配置逻辑处理,规避了VS属性页的问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.03 16:42:03