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

Visual Studio项目模板构建时$(SolutionDir)宏被替换,如何转义?

解决项目模板中$(SolutionDir)宏被自动替换的问题

我之前也碰到过一模一样的情况——Visual Studio的模板引擎在打包、处理项目模板时,会自动解析并替换MSBuild宏,导致你原本想保留的$(SolutionDir)被替换成了模板构建时的临时路径。要搞定这个问题,只需要对宏做双美元符号转义就行。

具体解决方案

把原代码里的$(SolutionDir)替换成$$(SolutionDir),这样模板引擎处理时会把$$解析成单个$,生成后的项目文件里就能保留原本的MSBuild宏,而不会被替换成临时路径。

修改后的代码示例:

<ItemGroup>
  <Compile Include="$$(SolutionDir)\CommonAssemblyInfo.cs">
    <Link>Properties\CommonAssemblyInfo.cs</Link>
  </Compile>
  <Compile Include="Properties\AssemblyInfo.cs" />
</ItemGroup>

原理说明

Visual Studio的模板系统会识别以单个$开头的变量并执行替换操作,当你用$$时,模板引擎会把它当成转义后的单个$,这样就能完整保留$(SolutionDir)这个MSBuild宏的原始形式,让生成后的项目可以正常引用解决方案根目录下的文件。

内容的提问来源于stack exchange,提问作者Julian Kopka Heerup

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 08:12:05