我目前正在運行一個CI構建和部署使用TFS 2013的構建和發佈管理2013年,雖然我需要我正在部署的Web應用程序(WebForms)進行預編譯。我希望在輸出複製到放置位置之前使用發佈配置文件來驅動預編譯,但是我還沒有發現任何能夠完成此操作的內容。如何獲取TFS構建以使用保存的發佈配置文件預編譯Web應用程序?
找到How do I configure MSBuild to use a saved publishProfile for WebDeploy?後,我成立了我的web應用程序發佈配置文件,如果我使用msbuild.exe使用開發人員命令提示符下VS2013
msbuild.exe WebSite.csproj /p:DeployOnBuild=true /p:PublishProfile=TfsPrecompile
發佈名爲TfsPrecompile檔案,將預編譯的Web應用程序,具有從https://stackoverflow.com/a/13267694/595473
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<WebPublishMethod>FileSystem</WebPublishMethod>
<LastUsedBuildConfiguration>Debug</LastUsedBuildConfiguration>
<LastUsedPlatform>Any CPU</LastUsedPlatform>
<SiteUrlToLaunchAfterPublish />
<ExcludeApp_Data>False</ExcludeApp_Data>
<PublishUrl>$(MSBuildProjectDirectory)\PublishDirectory</PublishUrl>
<DeleteExistingFiles>True</DeleteExistingFiles>
<PrecompileBeforePublish>True</PrecompileBeforePublish>
<EnableUpdateable>False</EnableUpdateable>
<DebugSymbols>False</DebugSymbols>
<WDPMergeOption>DonotMerge</WDPMergeOption>
</PropertyGroup>
</Project>
運行的MSBuild當地一些幫助,我結束了預編譯的網站在新PublishDirectory
文件夾,一切似乎進展順利。
要連接TFS和發佈管理,我使用ReleaseTfvcTemplate.12.xaml模板。
構建>項目:$/Insert_Directory_Here/WebSite.csproj
高級>的MSBuild參數:/p:DeployOnBuild=true /p:PublishProfile=TfsPrecompile
當我用的MSBuild參數運行的構建中有九或-所以分鐘構建無顯著時間差相比,沒有預編譯參數的構建。當我在本地運行MSBuild時,我看到了ASPNETCOMPILER的引用,雖然我在任何TFS診斷日誌中都沒有看到對ASPNETCOMPILER或aspnet_compiler的引用。
如果在「詳細」或「診斷」下運行構建日誌詳細信息的構建,是否會看到與ASP .NET編譯器相關的任何警告?這聽起來很熟悉。 – 2014-11-22 19:11:43
您是否正在設置VisualStudioVersion屬性?有關更多詳細信息,請參見http://sedodream.com/PermaLink,guid,a5894bad-f2a1-441a-a5b2-74f16c6cf8aa.aspx。 – 2014-11-23 04:35:23
@DanielMann @SayedIbrahimHashimi我現在在Build> Advanced> MSBuild arugments中使用'/ flp:verbosity = diagnostic /p:VisualStudioVersion=12.0/p:DeployOnBuild = true/p:PublishProfile = TfsPrecompile',儘管我還沒有看到構建服務器上的文件或放置位置的任何差異。日誌文件大小與以前相同,似乎所有版本現在都在2013年登錄診斷級別。在WebSite.log文件中,我看到DeployOnBuild = true和PublishProfile = TfsPrecompile在1> Project「C :\ Builds \ 1 \ DIRECTORY \ WebSite.csproj「節點1(默認目標)。 – CosworthTC 2014-11-23 16:16:56