gpt4 book ai didi

.net - 在 NAnt 中,我可以创建 VS 项目中列出的文件的文件集吗?

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

我正在重写我们的 NAnt构建脚本,使它们更简洁、更通用。

我们构建过程中的一个步骤是将某些文件打包成一个 zip 文件。在我们创建一个 fileset 之前有很多包含的文件类型,试图捕捉项目中可能存在的所有内容。当我们想要在项目中包含非标准文件类型时,这偶尔会导致问题。

我希望我能找到一种方法来创建一个 fileset基于 Visual Studio 项目文件 (.csproj) 中列出的文件(以及文件的子集)。然后我可以在 zip 中使用这个文件集任务。我还没有找到任何可以自动执行此操作的东西(尽管 SLiNgshoT 中现已弃用的 NAntContrib 任务看起来有点有前途)。

我开始尝试手动执行此操作,但卡住了。我有一个从解决方案中获取项目的目标(使用 regex ),然后尝试使用 xmlpeek 获取项目中的每个内容文件(使用 XPath 查询 /n:Project/n:ItemGroup/n:Content/@Include)。这里的问题是 xmlpeek不返回每个值,只返回第一个。而且,即使它确实返回了每个值,我也不确定如何将它放入 fileset 中。从这里开始。

有什么办法可以挽救这种思路?我可以通过自定义 NAnt 任务完成我想要的吗(我不希望每个项目都依赖于自定义任务)?是否有一些我没有找到的内置方法来执行此操作?

如果我的目标或方法不清楚,请随时在评论中提问。

谢谢!


更新:澄清一下,我的意思是让整个过程更加无缝。虽然我可以轻松地将所有 .xml 文件添加到一个包中,但这通常会得到位于同一文件夹中但实际上并不是项目一部分的 .xml 文件。当我已经有了项目使用的文件列表(甚至在内容和其他类型之间分开)时,不使用该信息似乎是一种耻辱。最终,任何人都不必触摸构建文件来更改包中包含的内容。对我来说这似乎不是一个白日梦......

最佳答案

参见 this related question . microsoft.build.buildengine 接口(interface)应该可以让您更好地访问所需的信息,但遗憾的是我认为您必须构建自定义任务。

但我认为解析项目文件以生成在别处使用的文件集……将所有内容都放在构建脚本中有点过分了。而且由于您似乎想重用它,我认为依赖于自定义任务并不比任何其他形式的重用更糟糕(即使您可以在现有的 Nant 任务中完成所有这些,您也会仍然需要让每个项目以某种方式继承该过程)。

关于.net - 在 NAnt 中,我可以创建 VS 项目中列出的文件的文件集吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/529450/

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