2017-11-20 11 views
2

私はasp.net MVCプロジェクトと、npmコマンドでビルドするフロントエンドを持っています。特定のフォルダをパッケージとして展開する方法

ビルド後にアプリフォルダを提供します。 enter image description here

このフォルダは自分のcsprojファイルには含まれません。

私がteamcityから展開するとき、私は2つのステップを使います。

  1. 非常に非常に遅い/ appフォルダ(個別のファイル)

しかし、ftpの展開のためのアプリケーション

  • FTPの展開を公開します。 このフォルダを「パッケージ」としてどのように展開できますか?

    おそらく、私は動的にそれをcsprojファイル または何かに含めることができますか?

  • +0

    この問題のための任意のアップデートを:appフォルダが完全に構築した後に生成される

  • 場合は、同様に、 AfterTargets="Build"BeforeTargets="_CheckForInvalidConfigurationAndPlatform"に変更できますか?あなたの問題を解決しましたか?そうでない場合は、この問題に関する最新情報をお知らせください。 –

  • 答えて

    0

    しかし、ftpの展開は非常に遅いです。このフォルダを 'パッケージ'としてどのように配備できますか?

    実際、多くのファイルを含むフォルダを展開すると、処理速度が低下します。単一のスレッドのみを開き、一度に1つのファイルのみをアップロードするためです。あなたが「MSBuildTasksを」nugetパッケージを追加する必要がありますが、他のフォルダにReleasePathを変更することができます。

    <ItemGroup> 
        <Content Include="app\**\*.*" /> 
        </ItemGroup> 
    
        <Import Project="..\.build\MSBuild.Community.Tasks.Targets" /> 
    
        <Target Name="AfterBuild"> 
        <PropertyGroup> 
         <ZipPackagePath>bin</ZipPackagePath> 
        </PropertyGroup> 
        <Zip Files="@(Link)" WorkingDirectory="$(ZipPackagePath)" ZipFileName="output\ZipName.zip" ZipLevel="9" /> 
        </Target> 
    

    注:あなたは、MSBuildのターゲットによってフォルダのzipを考慮することができます。

    しかし、FTPデプロイ後にそのzipファイルを解凍する必要があります。

    おそらく私は動的にそれをcsprojファイル、または何かに含めることができます else?

    また

    、あなたは動的プロジェクトファイルにそれを含めることができますし、それが私たちの推薦です。

    これを行うには、プロジェクトをアンロードします。そして、プロジェクトの最後に、ちょうど終了タグの前に、スクリプト以下の場所:出版後

    <Target Name="AddAppFiles" AfterTargets="Build"> 
        <ItemGroup> 
         <Content Include="app\**\*.*" /> 
        </ItemGroup> 
        </Target> 
    

    、アプリのフォルダが対象の場所に含まれています:

    enter image description here

    注意:

    1. このターゲットでは、appというフォルダは、ソリューションエクスプローラ(動的にインクルード)に表示されません。

    <Target Name="AddAppFiles" BeforeTargets="_CheckForInvalidConfigurationAndPlatform">

    +0

    iは、ターゲット '<ターゲット名= "AddAppFiles" BeforeTargets = "公開"> <コンテンツは "\ ** \ *。*アプリ"=含める/> ' を追加しましたが、これは」doesnの –

    +0

    @ArtemPolischuk、あなたがasp.net MVCプロジェクトを使用しているので、ターゲットには 'Publish'が含まれていません。したがって、あなたが 'BeforeTargets =" Publish "を使用している場合、MSBuildはこのターゲットを呼び出すことができませんでした(clickonce publishにはターゲット、WPF、Windows Formなどが公開されています)。 'AfterTargets =" Build "または' BeforeTargets = "_ CheckForInvalidConfigurationAndPlatform" 'に変更することができます。 –

    +0

    この作品は、私がビジュアルスタジオから展開しようとしています。しかし、私がチームシップから展開すると、うまくいきません。 私のTCの設定: ターゲット: '/ Pを再構築します。プラットフォーム= "任意のCPU" /P:DeployOnBuild = Trueの /p:Configuration=WebClient.Release /P:PublishProfile = "ウェブ" /P :ProfileTransformWebConfigEnabled = Trueの /P:_DestinationType = AzureWebSite /P:MSDeployPublishMethod = WMSVC /P:ユーザ名= ZZ /P:パスワード= ZZ /P:SkipExtraFilesOnServer = true'の –

    関連する問題