Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/wix/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ssis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
msbuild字符串到数组_Msbuild_Wix_Wix3.5_Msbuild 4.0 - Fatal编程技术网

msbuild字符串到数组

msbuild字符串到数组,msbuild,wix,wix3.5,msbuild-4.0,Msbuild,Wix,Wix3.5,Msbuild 4.0,我正在使用PowershellTaskFactory构建一个字符串,该字符串返回以分号分隔的文件列表 当我试图将它传递给我的in Wix时,它被解释为一个字符串。我已经为此奋斗了很长一段时间,并决定伸出援手。我真正想要的是将WX列表传递给wix的candle应用程序,我认为MsBuild会识别包含分隔符的字符串并将其拆分……但它会作为字符串参数传递给candle 更新-已解决 我最终使用了的新MSBUILD 4.0功能,与此类似 <Compile Include="$(builtStri

我正在使用PowershellTaskFactory构建一个字符串,该字符串返回以分号分隔的文件列表

当我试图将它传递给我的in Wix时,它被解释为一个字符串。我已经为此奋斗了很长一段时间,并决定伸出援手。我真正想要的是将WX列表传递给wix的candle应用程序,我认为MsBuild会识别包含分隔符的字符串并将其拆分……但它会作为字符串参数传递给candle

更新-已解决

我最终使用了的新MSBUILD 4.0功能,与此类似

 <Compile Include="$(builtString.Split(';'))"/>

获取作为属性的字符串,并将其转换为项数组

<PropertyGroup>
    <ListOfFilesFromPowerShell>a.wxs;b.wxs;c.wxs</ListOfFilesFromPowerShell>
</PropertyGroup>

<ItemGroup>
    <ListOfFilesFromPowerShell Include="$(ListOfFilesFromPowerShell)" />
</ItemGroup>

项数组上的特殊语法[,'']用于提供备用分隔符。

我实际上使用的是wix msbuild扩展提供的CompilerAdditionalOptions参数。我尝试了各种@$%选项和分隔符说明符,但都没用。虽然感觉很粗糙,但我还是让它工作了(见编辑)。谢谢你的回复!
<Exec
    CommandLine="candle.exe @(ListOfFilesFromPowerShell, ' ') ..."
    ...
    />
candle.exe a.wxs b.wxs c.wxs ...