1

我正在尝试使用MSBuildCommunityTasksWebDirectoryCreate中的任务来使用MSBuild 创建我的虚拟目录,但它会引发错误。Index was out of range

这是我的构建脚本的相关部分:

  <Import Project="$(MSBuildExtensionsPath)\MSBuildCommunityTasks\MSBuild.Community.Tasks.Targets"/>

  ...other build targets working ok...

  <Target Name="Deploy">
    <RemoveDir Directories="$(DeploymentFolder)$(VerRevision)" ContinueOnError="true" />
    <ItemGroup>
      <DeploymentFiles Include="$(PublishOutputFolder)\**\*.*" />
    </ItemGroup>
    <Copy SourceFiles="@(DeploymentFiles)" DestinationFolder="$(DeploymentFolder)$(VerRevision)\%(RecursiveDir)" />
    <WebDirectoryDelete VirtualDirectoryName="$(VirtualDirectory)$(VerRevision)" ContinueOnError="true" />
    <WebDirectoryCreate VirtualDirectoryName="$(VirtualDirectory)$(VerRevision)" VirtualDirectoryPhysicalPath="$(DeploymentFolder)$(VerRevision)" />
  </Target>

这是相应的输出:

  Deleting virtual directory 'MyApp283' on 'localhost:80'.
MSBUILD : warning : The system cannot find the path specified. (Exception from HRESULT: 0x80070003) [D:\build\MyApp\Build.xml]
  The previous error was converted to a warning because the task was called with ContinueOnError=true.
  Build continuing because "ContinueOnError" on the task "WebDirectoryDelete" is set to "true".
  Creating virtual directory named MyApp283 on localhost:
D:\build\MyApp\Build.xml(50,5): error : Index was out of range. Must be non-negative and less than the size of the collection.
D:\build\MyApp\Build.xml(50,5): error : Parameter name: index
Done Building Project "D:\build\MyApp\Build.xml" (default targets) -- FAILED.

Build FAILED.

我通过手动添加虚拟目录并运行构建来检查导入是否正确。在这种情况下,WebDirectoryDelete任务会正确删除虚拟目录,但WebDirectoryCreate会引发相同的错误。

我正在使用 MSBuild 从一个简单的批处理文件执行构建。在此之前的所有任务都执行得很好。操作系统为 Windows Server 2008 R2 Enterprise Edition SP1。

谁能给我任何线索?SO 和谷歌抛出了一个没有答案的链接。

4

0 回答 0