如何使用msbuild命令(或之前)查找文件是否存在

时间:2016-05-24 14:14:40

标签: msbuild msdeploy

我需要在运行power-shell脚本之前找到某个文件是否存在

文件(如果存在)将位于特定文件夹中。

我可以通过proj文件或类似的东西检查它的存在吗?

2 个答案:

答案 0 :(得分:1)

注意第二个MyCheck查看(第一个)MyCheck

的(条件)值
    <PropertyGroup>
        <MyCheck Condition="Exists($(MyFileOrFolderName))">true</MyCheck>
        <MyCheck Condition="'$(MyCheck)'==''">false</MyCheck>
    </PropertyGroup>  
    <Message Text="My-File-Or-Folder-Name already exists? :  $(MyCheck)" />

OR

    <PropertyGroup>
        <MyCheck>false</MyCheck>
        <MyCheck Condition="Exists($(MyFileOrFolderName))">true</MyCheck>
    </PropertyGroup>  
    <Message Text="MyFileOrFolderNameexists? :  $(MyCheck)" />

答案 1 :(得分:0)

为了执行PS脚本,根据文件的存在,您可以在*。* proj文件中创建Target元素,条件取决于文件存在:

<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="14.0">
  <PropertyGroup>
    <ScriptLocation>.\Do-Something.ps1</ScriptLocation>
    <PowerShellExe Condition=" '$(PowerShellExe)'=='' ">%WINDIR%\System32\WindowsPowerShell\v1.0\powershell.exe
    </PowerShellExe>
  </PropertyGroup>
  <Target Name="RunPSScript" Condition="Exists($(ScriptLocation))">
    <Exec Command="$(PowerShellExe) -NonInteractive -executionpolicy Unrestricted -command &quot;$(ScriptLocation)&quot;"/>  
  </Target>
</Project>

查看有关从msbuild项目执行PS脚本的更多详细信息here。您可以使用AfterTargets,BeforeTargers或any other methods来控制执行此目标的顺序。