gpt4 book ai didi

msbuild - 如何在 MSBuild 中找到当前文件

转载 作者:行者123 更新时间:2023-12-02 12:30:54 25 4
gpt4 key购买 nike

我知道关于 MSBuild 的最新书籍说这是不可能的,但我确信我已经看到了一个指向当前文件的属性。

有人知道如何找到当前文件吗? (即当主 MSBuild 文件导入辅助文件时。该文件内部到辅助文件的路径是什么。)

我正在尝试在 HKEY_LOCALMACHINE\Software\Microsoft\VisualStudio\8.0\MSBuild\SafeImports 中注册我的文件,但该文件的路径在我的每台同事计算机上都不是恒定的,并且它是从几个不同的项目导入的,因此这样做硬编码的相对路径也不是一个好主意。

如果有一种方法可以获取当前工作目录(工作目录会随着每次导入而切换,我想我可以将其保存下来)

最佳答案

没有可靠的方法来识别“当前文件”。当 MSBuild 处理一个文件时,它可以导入多个其他文件,最终结果是该文件在内存中的单个完整表示。当目标执行时,它们不知道它们是在哪个文件中声明的。

这就是为什么可重用构建脚本必须“参数化”以接受已知相对位置的位置。例如,如果您依赖于第三方引用的文件夹所在的位置,则驱动进程的构建脚本必须为您声明该属性。

仅限 MSBuild 4.0

如果您使用的是 MSBuild 4.0,即 Visual Studio 2010/.NET 4.0(也可以针对 .NET 2.0/3.0/3.5)。那么您现在拥有了可用于此特定目的的这些属性:

  • MSBuildThisFile
  • MSBuildThisFileDirectory
  • MSBuildThisFileDirectoryNoRoot

赛义德·易卜拉欣·哈希米

我的书:Inside the Microsoft Build Engine : Using MSBuild and Team Foundation Build

关于msbuild - 如何在 MSBuild 中找到当前文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/927978/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com