如何在 MSBuild 的项目文件 csproj 中获取绝对路径

通常我们能够在 csproj 文件中仅仅使用相对路径就完成大多数的编译任务。但是有些外部命令的执行需要用到绝对路径,或者对此外部工具来说,相对路径具有不同的含义。这个时候,就需要将相对路径在 csproj 中转换为绝对路径来使用。

本文介绍如何在项目文件 csproj 中将一个相对路径转换为绝对路径。


在 MSBuild 4.0 中,可以在 csproj 中编写调用 PowerShell 脚本的代码,于是获取一个路径的绝对路径就非常简单:

[System.IO.Path]::GetFullPath('$(WalterlvRelativePath)')

具体到 csproj 的代码中,是这样的:

<Project>
    <PropertyGroup>
        <WalterlvRelativePath>$(OutputPath)</WalterlvRelativePath>
        <_WalterlvAbsolutePath>$([System.IO.Path]::GetFullPath($(WalterlvRelativePath)))</_WalterlvAbsolutePath>
    </PropertyGroup>
</Project>

这样,就可以使用 $(_WalterlvAbsolutePath) 属性来获取绝对路径。

你可以阅读我的其他篇博客了解到 $(OutputPath) 其实最终都会是相对路径:


参考资料


我的博客会首发于 https://blog.walterlv.com/,而 CSDN 会从其中精选发布,但是一旦发布了就很少更新。

如果在博客看到有任何不懂的内容,欢迎交流。我搭建了 dotnet 职业技术学院 欢迎大家加入。

知识共享许可协议

本作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可。欢迎转载、使用、重新发布,但务必保留文章署名吕毅(包含链接:https://walterlv.blog.csdn.net/),不得用于商业目的,基于本文修改后的作品务必以相同的许可发布。如有任何疑问,请与我联系

展开阅读全文
©️2020 CSDN 皮肤主题: 我行我“速” 设计师: Amelia_0503 返回首页
实付0元
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值