Visual Studio ASP.NET Web API预编译文件与TFS

时间:2016-12-19 15:07:06

标签: wix tfs2015 web-project paraffin

我有一个asp.net web api项目,其输出需要使用wix打包在一个安装项目中。

我想预编译该网站。问题是预编译过程会生成变量文件名(即特别是* .compiled文件)。

我还想在TFS构建中构建设置。

似乎我唯一的选择是在wix项目的预建步骤中生成一个.wxs文件。

.wxs文件源路径使用$(var。 _My_Web_Project _ .TargetDir)。这似乎被转换为基于 Sources 的目录。

我正在使用paraffin来做这件事,在使用visual studio构建解决方案时,它可以正常工作。

通过TFS构建构建解决方案时, .compiled 文件将复制到 Binaries 文件夹,而所有其他相关网站文件将复制到< strong>来源基于目录。

构建错误如下所示:

  

系统找不到文件'd:\ BuildAgents \ ___ basedir ___ \ Binaries \ ___ web_project_dir \ _PublishedWebSites \ ___ site ___ \ bin \ textsample.cshtml.c6fb271c.compiled'。

该文件确实位于Sources目录中。

  

'd:\ BuildAgents \ ___ BASEDIR ___ \源头\ ___ web_project_dir \ _PublishedWebSites \ ___站点___ \ BIN \ textsample.cshtml.c6fb271c.compiled'

我认为我需要重新定义aspnet_compiler输出或类似的东西,但无法弄清楚如何做到这一点。

msbuild命令行参数如下:

/p:GenerateProjectSpecificOutputFolder=true /p:VisualStudioVersion=14.0 /p:DeployOnBuild=true /p:PublishProfile=local /p:CleanWebProjectOutputDir=False /verbosity:d

编辑1:我正在使用 XAML构建

enter image description here

任何帮助表示感谢。

编辑2: 使用基于任务的新构建,它可以按原样工作(无需使用其他复制文件任务)。

aspnet_compiler将.compiled文件输出到正确的文件夹中:

  

C:\ Windows \ Microsoft.NET \ Framework \ v4.0.30319 \ aspnet_compiler.exe -v / -p D:\ BuildAgents \ vNext \ _work \ 1 \ s \ Softs \ __解决方案__ \ __ Web_Project \ _ obj \ Release \ AspnetCompileMerge \ source -c D:\ BuildAgents \ vNext \ _work \ 1 \ s \ Softs \ __解决方案__ \ __ Web_Project __ \ obj \ Release \ AspnetCompileMerge \ TempBuildDir

1 个答案:

答案 0 :(得分:0)

在基于新任务的构建系统中,使用Copy Files任务将文件从源文件夹复制到目标文件夹很容易。

enter image description here

  

源文件夹:包含您要复制的文件的文件夹。

     

内容:指定要应用于要复制的文件列表的迷你匹配模式过滤器(每行一个)。

     

目标文件夹:将复制文件的文件夹。在大多数情况下,您使用变量指定此文件夹。