1

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

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

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

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

.wxs 文件源路径使用 $( var._My_Web_Project_ .TargetDir)。这似乎被翻译成基于Sources的目录。

我已经在使用石蜡来做到这一点,并且在使用 Visual Studio 构建解决方案时效果非常好。

通过 TFS 构建构建解决方案时,.compiled文件被复制到Binaries文件夹,而所有其他相关网站文件都被复制到基于Sources的目录。

构建错误如下:

系统找不到文件 'd:\BuildAgents\___basedir___\Binaries\___web_project_dir\_PublishedWebSites\___site___\bin\textsample.cshtml.c6fb271c.compiled'。

该文件确实在 Sources 目录中。

'd:\BuildAgents\___basedir___\Sources\___web_project_dir\_PublishedWebSites\___site___\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 build

在此处输入图像描述

任何帮助表示赞赏。

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

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

C:\Windows\Microsoft.NET\Framework\v4.0.30319\aspnet_compiler.exe -v / -p D:\BuildAgents\vNext\_work\1\s\Softs\__Solution__\__Web_Project\obj\Release\AspnetCompileMerge\Source - c D:\BuildAgents\vNext\_work\1\s\Softs\__Solution__\__Web_Project__\obj\Release\AspnetCompileMerge\TempBuildDir

4

1 回答 1

0

在基于新任务的构建系统中,使用Copy Files任务可以轻松地将文件从源文件夹复制到目标文件夹。

在此处输入图像描述

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

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

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

于 2016-12-20T07:39:10.167 回答