$(TargetDir) 替换 SDK 样式的项目(类似于 "$(MSBuildProjectDirectory)" 用于"$(ProjectDir)")



我有一个由Visual Studio生成的非SDK风格格式的旧项目。它包含一个生成后事件,其中使用了$(ProjectDir)$(TargetDir)

我目前正在将该项目转换为一个新的SDK风格的项目(csproj文件(。如果我只是将构建后的事件转换为TargetExecCommand,我会得到错误。在命令前面加上echo之后,我可以理解为什么:值$(ProjectDir)$(TargetDir)都是空的。

我发现用$(MSBuildProjectDirectory)代替$(ProjectDir)会得到想要的结果,但$(TargetDir)的等价物是什么?


请注意,我没有将Visual Studio用于新的SDK样式项目。我正在使用Visual Studio代码。Visual Studio似乎为$(ProjectDir)/$(TargetDir)/others设置了值,但Visual Studio Code没有。我使用dotnet build构建我的项目。

似乎我在这里找到了答案:

TargetDir的值计算为您指定的项目输出路径的完整绝对路径,该路径直接存储在项目文件(.CSPROJ、.VBPROJ等(的OutputPath属性中。

所以我相信$(TargetDir)就是$(MSBuildProjectDirectory)$(OutputPath)

相关内容

  • 没有找到相关文章

最新更新