作为 CI 流程的一部分,我正在尝试为 SSIS 项目创建清单文件。我发现我应该能够使用MSBuild 扩展包中的 BuildDeploymentManifest 任务来执行此操作。
通过创建一个调用此任务的 MSBuild 文件并传入 SSIS 项目文件,我已在本地开发人员机器上成功实现了这一目标。输出正是我想要的,即将 .dtsConfig 和 .dtsx 文件复制到输出文件夹,并生成清单文件。
但是,当我将其添加到我的 CI 系统中时,我收到以下错误:
error MSB4018: The "MSBuild.ExtensionPack.SqlServer.BuildDeploymentManifest" task failed unexpectedly.
error MSB4018: System.IO.IOException: The device is not ready.
error MSB4018:
error MSB4018: at System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)
error MSB4018: at System.IO.File.InternalCopy(String sourceFileName, String destFileName, Boolean overwrite)
error MSB4018: at System.IO.File.Copy(String sourceFileName, String destFileName, Boolean overwrite)
error MSB4018: at MSBuild.ExtensionPack.SqlServer.BuildDeploymentManifest.CreateElementForFileAndCopy(String fileType, String sourcePath, String destinationPath) in C:\Projects\CodePlex\MSBuildExtensionPack\Solutions\Main3.5\Framework\SqlServer\BuildDeploymentManifest.cs:line 158
error MSB4018: at MSBuild.ExtensionPack.SqlServer.BuildDeploymentManifest.<>c__DisplayClass18.<Execute>b__a(<>f__AnonymousType1`2 <>h__TransparentIdentifier1) in C:\Projects\CodePlex\MSBuildExtensionPack\Solutions\Main3.5\Framework\SqlServer\BuildDeploymentManifest.cs:line 124
error MSB4018: at System.Linq.Enumerable.WhereSelectEnumerableIterator`2.MoveNext()
error MSB4018: at System.Xml.Linq.XContainer.AddContentSkipNotify(Object content)
error MSB4018: at System.Xml.Linq.XContainer.AddContentSkipNotify(Object content)
error MSB4018: at MSBuild.ExtensionPack.SqlServer.BuildDeploymentManifest.Execute() in C:\Projects\CodePlex\MSBuildExtensionPack\Solutions\Main3.5\Framework\SqlServer\BuildDeploymentManifest.cs:line 103
error MSB4018: at Microsoft.Build.BackEnd.TaskExecutionHost.Microsoft.Build.BackEnd.ITaskExecutionHost.Execute()
error MSB4018: at Microsoft.Build.BackEnd.TaskBuilder.ExecuteInstantiatedTask(ITaskExecutionHost taskExecutionHost, TaskLoggingContext taskLoggingContext, TaskHost taskHost, ItemBucket bucket, TaskExecutionMode howToExecuteTask, Boolean& taskResult)
关于可能导致这种情况的任何想法?调用在我的开发虚拟机上运行的构建文件的确切批处理文件有效。我已尝试排除诸如防病毒之类的问题导致问题,并且我已将其关闭,但仍然出现相同的错误。