4

現在、ビルドには TFS 2013 を使用し、デプロイには Release Management 2013 を使用して CI ビルドとデプロイを実行していますが、デプロイする Web アプリケーション (WebForms) をプリコンパイルする必要があります。出力がドロップ場所にコピーされる前に、発行プロファイルを使用してプリコンパイルを実行しようとしていますが、まだこれを実行できるものは見つかりませんでした。

WebDeployに保存されたpublishProfileを使用するようにMSBuildを構成するにはどうすればよいですか? VS2013 の開発者コマンド プロンプトを使用して msbuild.exe を使用すると、Web アプリケーションをプリコンパイルする発行プロファイルを Web アプリケーションに設定します。

msbuild.exe WebSite.csproj /p:DeployOnBuild=true /p:PublishProfile=TfsPrecompile

https://stackoverflow.com/a/13267694/595473の助けを借りて、TfsPrecompile という名前のプロファイルを公開します

<?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 と Release Management をリンクするために、ReleaseTfvcTemplate.12.xaml テンプレートを使用しています。

ビルド > プロジェクト:$/Insert_Directory_Here/WebSite.csproj

詳細 > MSBuild 引数:/p:DeployOnBuild=true /p:PublishProfile=TfsPrecompile

MSBuild 引数を使用してビルドを実行すると、プリコンパイル引数を使用しないビルドと比較して、9 分程度のビルドに大きな時間差はありません。MSBuild をローカルで実行すると、TFS 診断ログのいずれにも ASPNETCOMPILER や aspnet_compiler への参照が表示されませんが、ASPNETCOMPILER への参照がスクロールされます。

4

2 に答える 2

-1

Web サイトのプリコンパイル方法に影響を与えるリリース テンプレートにバグがあると思います。デフォルト テンプレートの使用を検討し、代わりに RM ビットを手動で追加します。

http://blogs.msdn.com/b/visualstudioalm/archive/2013/12/09/how-to-modify-the-build-process-template-to-use-the-option-trigger-release-from-ビルド.aspx

最初にデフォルトのテンプレートに切り替えて、意図したとおりに動作することを確認します。その後、上の道をたどってください。

于 2014-11-22T07:51:21.823 に答える