0

我在 TeamCity 上有一个构建步骤,它构建一个项目文件并将项目部署到网络位置。//服务器/系统/Web

当 web 文件夹不存在时,部署工作正常,但是,如果 web 文件夹已经存在,则 web 文件夹将被删除并且构建失败。

是否有我需要设置的标志,所以 msbuild 只是替换内容,如果有的话。我还考虑了一个在部署之前从文件夹中删除所有内容的powershell脚本,这是一个可行的解决方案吗?

日志:

[12:20:18][MSBuild 输出] CopyAllFilesToSingleFolderForMsdeploy:

[12:20:18][MSBuild 输出] 创建目录“\server\system\web”。

[12:20:18][MSBuild 输出] 将所有文件复制到下面的临时位置以进行打包/发布:

[12:20:18][MSBuild 输出]\server\system\web。

[12:20:18][MSBuild 输出] 将 bin\Dokumentproduksjon.Web.dll 复制到 \server\system\web\bin\Dokumentproduksjon.Web.dll。

[12:20:18][MSBuild 输出] 创建文件夹 \server\system\web\bin 失败。拒绝访问路径“\server\system\web\bin”。

[12:20:18][MSBuild 输出] 完成构建项目“C:\TeamCity\buildAgent\work\ac656796ad82c0\Dokumentproduksjon.Web\Dokumentproduksjon.Web.csproj.teamcity”(构建;包目标)——失败.

[12:20:18][MSBuild 输出]

[12:20:18][MSBuild 输出] 构建失败。

4

1 回答 1

0

这是部署到生产环境还是测试环境?

如果是生产,您是否有可能提供内容并因此被锁定?IIS / Apache 是否提供内容?

如果它进入测试环境,同样可能是这样,您是否确认它没有被托管?通常,理想的情况是部署到干净的虚拟机,确保您像部署新环境一样进行部署。这将使您解决web已经存在的文件夹的问题。如果你没有那么奢侈,那么你想首先运行脚本,使这个环境模仿一个干净的环境,所以是的,你会想要一个命令来删除那个文件夹。但是,回到前面的评论,如果该文件夹上有文件锁定,您的命令也会失败。

于 2013-06-21T15:26:21.727 回答