我正在尝试使用ItemGroup
在MsBuild文件中创建属性。该属性需要是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实现我需要的东西(如果可能的话,这并不意味着创建自定义任务或只是编写单独的脚本)。
谢谢!