YUI压缩器和TFS Build

Mat*_*ias 8 msbuild build-automation build-process tfsbuild tfs2010

我们有一个项目,其中.js和.css文件使用YUI Compressor压缩.一个非常好的工具.我们还使用TFS 2010作为构建服务器,每晚构建也部署到我们的开发网站.

我们遇到的问题是YUI生成的文件导致"拒绝访问"问题.这是因为之前已经生成了这样一个文件,并且它是项目的一部分,使其成为只读文件.然而,我们可以从项目中删除它,它应该创建好.那么问题是生成的文件不会包含在实际的部署包中.

本地我没有问题,因为我有一个预构建事件命令脚本,它删除现有文件.这显然不适用于构建服务器.也许tfs上下文用户缺乏权限,我不知道.

有没有人可能有类似的问题?

更新21/11: 问题可能是模糊的.为简化起见,我只想说我希望它能像本地一样工作:

IF NOT $(ConfigurationName) == DEBUG DEL "$(ProjectDir)Styles\styles.min.css
IF NOT $(ConfigurationName) == DEBUG DEL "$(ProjectDir)JavaScript\script.min.js
Run Code Online (Sandbox Code Playgroud)

这在预构建命令事件行中的Project properties - > Build events下定义.

该脚本在生成YUI文件之前删除文件,因此没有要覆盖的文件.执行TFS构建的用户上下文是否很容易修改权限?

解:

我们最终在预构建事件中使用了以下代码:

attrib -r "$(ProjectDir)Styles\styles.min.css"
attrib -r "$(ProjectDir)JavaScript\script.min.js"
IF NOT $(ConfigurationName) == Debug $(MSBuildBinPath)\msbuild.exe "$(ProjectDir)Config\MSBuild\BuildSettings.xml"
Run Code Online (Sandbox Code Playgroud)

/马蒂亚斯

kro*_*ijk 4

如果这些文件是项目的一部分并从 TFS 存储库下载,如果您需要对它们进行任何处理(例如删除),请首先始终删除只读标志。因此,在您的脚本中,首先执行以下操作:

attrib -r *.js
attrib -r *.css
Run Code Online (Sandbox Code Playgroud)

之后应该可以很好地删除它们。这可能不是权限问题,因为用于下载文件的帐户也是用于删除文件的帐户。