我有一个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构建。
任何帮助表示感谢。
编辑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
答案 0 :(得分:0)
在基于新任务的构建系统中,使用Copy Files任务将文件从源文件夹复制到目标文件夹很容易。
源文件夹:包含您要复制的文件的文件夹。
内容:指定要应用于要复制的文件列表的迷你匹配模式过滤器(每行一个)。
目标文件夹:将复制文件的文件夹。在大多数情况下,您使用变量指定此文件夹。