1

我正在尝试在 MsBuild 文件中创建一个属性,使用ItemGroup. 该属性需要是由nuget update命令“恢复”的可执行文件的路径。问题是我事先不知道文件将在哪里结束(因为 nuget 更新将获得最新版本)并且有可能拥有多个文件(显然 nuget 可能会忘记删除旧的包文件夹)。

到目前为止,我尝试过的是:

<ItemGroup>
    <Executable Include="packages\mypackage*\**\myexecutable.exe" />
</ItemGroup>

它是这样使用的:

<Exec Command="$(Executable) $(MSBuildThisFileDirectory)solutionfile.sln $(MSBuildThisFileDirectory)solutionfile.zip" WorkingDirectory="$(MSBuildThisFileDirectory)" />

我需要通配符来查找文件,一切正常,除非有多个版本,Executable项目变成这样:

packages\mypackage-1.0\myexecutable.exe;packages\mypackage-2.0\myexecutable.exe;

显然ItemGroup是找到两者并创建一个 -;分隔的列表。我需要一种方法来排除所有内容并只保留一个......甚至更好地了解如何通过 MsBuild 实现我需要的东西(如果可能的话,这并不意味着创建自定义任务或只是编写单独的脚本)。

谢谢!

4

0 回答 0