MSBuild执行Powershell Script文件的相对/绝对路径

时间:2013-01-28 15:22:39

标签: powershell msbuild

我有一个我想用MSBuild运行的power shell脚本。脚本本身可以工作,我可以使用命令行传递路径变量;但是,当我尝试通过MSbuild传递变量时,我在路径中得到错误。

 <?xml version="1.0" encoding="utf-8" ?>
 <Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
    <Import Project="C:\Program Files (x86)\MSBuild\PowershellTask\Powershell.targets"/>

   <Target Name="Minify">
   <PropertyGroup>
       <FilePath>\Scripts</FilePath>
       <OutputPath>\MinifiedJS</OutputPath>
   </PropertyGroup>
   <Exec Command= "powershell.exe -command &quot;&amp;.\MinifyCSS.ps1&apos;$(FilePath)&apos;&apos;$(OutputPath)&apos;}&quot;" />

如何将路径传递给MSBuild。上面的代码错误/ Scripts和/ MinifiedJS。 这是错误:

powershell.exe -command“&amp; {。\ MinifyCSS.ps1'/ Scripts''/ MinifiedJS'}” 术语'。\ MinifyCSS.ps1 / Scripts'/ MinifiedJS'不被识别为名称 cmdlet,函数,脚本文件或可操作程序。检查拼写 名称,或者如果包含路径,请验证路径是否正确,然后重试。 在行:1 char:41 +&amp; {。\ MinifyCSS.ps1'/ Scripts''/ MinifiedJS'&lt;&lt;&lt;&lt; } + CategoryInfo:ObjectNotFound:(。\ MinifyCSS.ps1 / Scripts'/ MinifiedJS:String)[],CommandNotFoundException + FullyQualifiedErrorId:CommandNotFoundException

我还尝试将它们放在引号中并使用。\ previous。

任何建议?

1 个答案:

答案 0 :(得分:3)

尝试:

<?xml version="1.0" encoding="utf-8" ?>
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Import Project="C:\Program Files (x86)\MSBuild\PowershellTask\Powershell.targets"/>
<Target Name="Minify">
<PropertyGroup>
<FilePath>\Scripts</FilePath>
<OutputPath>\MinifiedJS</OutputPath>
</PropertyGroup>
<Exec Command="powershell.exe .\MinifyCSS.ps1 Scripts MinifiedJS" />
</Target>
</Project>