我在添加一个后期构建任务来执行项目的恢复构建时运行Ajax Minifier(ajaxMin.exe)。我已经添加代码到项目压缩所有的CSS和JavaScript,但在TFS触发一个构建时,构建服务器,我有很多构建错误在BuildLog.txt与消息:从MSBuild输出中缩小JS/CSS时的权限错误
错误:微软的Ajax Minifier 没有写权限 JS [文件名] .js文件
我得到一个消息,每个JavaScript和CSS文件,并在生成输出正确足够寻找热塑成型,没有缩小已经发生。 该项目在源代码控制下,但我认为是一个后期构建任务,这不会因为它缩小了构建服务器上的输出而不是源文件本身? 添加到我的.csproj的代码如下:
<Import Project="$(MSBuildExtensionsPath)\Microsoft\MicrosoftAjax\AjaxMin.tasks" />
<Target Name="AfterBuild" Condition=" '$(ConfigurationName)'=='Release' ">
<ItemGroup>
<JsFilesRelease Include="**\*.js" Exclude="**\*.min.js" />
<CssFilesRelease Include="**\*.css" />
</ItemGroup>
<AjaxMin JsSourceFiles="@(JsFilesRelease)" JsSourceExtensionPattern="\.js$" JsTargetExtension=".js"
CssSourceFiles="@(CssFilesRelease)" CssSourceExtensionPattern="\.css$" CssTargetExtension=".css" />
</Target>
有没有什么办法可以解决这个限制?我想确保从上面输出的所有文件都被缩小,并且它似乎只是阻止它的权限。
感谢
这很好。尽管\ js目录中只有JS,而\ stylesheets目录中只有css,但如果它们确实发生在其他任何地方,它们也会被缩小。我们正在与TFS进行源代码控制。 – LDJ 2010-10-05 11:12:49
我的意思是你的** \ *。js会引用你的源文件,这些文件可能被TFS锁定。您的输出文件可能位于_PublishedWebsite目录中。即使它是一个后期构建任务,msbuild过程与构建网站的过程完全相同,因此它可能在解决方案文件所在的目录中启动。你是否从Visual Studio运行构建? MSBuildProjectDirectory的价值是什么? – 2010-10-05 11:54:06