- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我知道关于 MSBuild 的最新书籍说这是不可能的,但我确信我已经看到了一个指向当前文件的属性。
有人知道如何找到当前文件吗? (即当主 MSBuild 文件导入辅助文件时。该文件内部到辅助文件的路径是什么。)
我正在尝试在 HKEY_LOCALMACHINE\Software\Microsoft\VisualStudio\8.0\MSBuild\SafeImports 中注册我的文件,但该文件的路径在我的每台同事计算机上都不是恒定的,并且它是从几个不同的项目导入的,因此这样做硬编码的相对路径也不是一个好主意。
如果有一种方法可以获取当前工作目录(工作目录会随着每次导入而切换,我想我可以将其保存下来)
最佳答案
没有可靠的方法来识别“当前文件”。当 MSBuild 处理一个文件时,它可以导入多个其他文件,最终结果是该文件在内存中的单个完整表示。当目标执行时,它们不知道它们是在哪个文件中声明的。
这就是为什么可重用构建脚本必须“参数化”以接受已知相对位置的位置。例如,如果您依赖于第三方引用的文件夹所在的位置,则驱动进程的构建脚本必须为您声明该属性。
如果您使用的是 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/
我是一名优秀的程序员,十分优秀!