2017-11-14 6 views
0

私はVisual Studio Team Services(VSTS)で構築しているdotnet core 2.0を使用しています。私は、Visual Studioのビルドステップを内蔵し、次の引数でのMSBuildを使用しています追加:msbuild packコマンドにはディレクトリ構造が含まれています

/p:DeployOnBuild=true 
/p:WebPublishMethod=Package 
/p:PackageAsSingleFile=true 
/p:SkipInvalidConfigurations=true 
/p:DeployIisAppPath="Default Web Site" 
/p:DesktopBuildPackageLocation="$(build.artifactstagingdirectory)\MyProject.BuildVersion.zip" 

これは、zipファイルを構築するだろうが、内部構造は醜いだったとサブフォルダとしてステージングディレクトリ全体のアーティファクトが含まれています。たとえば、実際のウェブサイトのファイル構造に到達するまで、私のzipファイル内のパスはContent\d_C\a\1\s\src\MyProjectName\obj\Release\netcoreapp2.0\PubTmp\Out

です。プロジェクトファイルだけを解凍し、それらをzipファイルのルートに保存する方法はありますか?私はいくつかの追加ステップを使用して回避策を持っていますが、すべてを圧縮する単一のビルドステップを使用できることはうれしいでしょう。

編集

私たちはアズールに展開するためのタコの展開を使用しています。

+0

なぜ構造は重要ですか? WebDeployがデプロイメントを処理します。 –

+0

@DanielMann - 私たちはOctopus Deployを使用し、私は 'Azure Web Appを展開する 'ステップを使用しています。ファイルはそのままAzureにしました(しかし、期待通りに解凍されました)。より良い方法があれば教えてください。 – ps2goat

答えて

1

それはDOTNETコア2.0プロジェクトですので、あなたは.NETのコアタスクを通じてプロジェクトを公開することができ、:Visual Studioのビルドタスクについては

enter image description here

、あなたは/P:PackageTempRootDir=""引数を指定しようとすることができ、それはソースを削除しますパス。

一方、Azure App Serviceをデプロイすると、紺色に展開した後もフォルダ構造が残らず、https://[app name].scm.azurewebsites.net/DebugConsoleにアクセスしてフォルダとファイルを確認できます。

+0

私たちは、テストしたいフィーチャーブランチを展開できるようにする必要のあるQAチームを持っています。それはAzure App Serviceの配備で利用できますか?ブランチにコミットが行われたときにのみデプロイするように設定されているようです。しかし、他の答えに感謝します。私は、.NET Core publishタスクを使用して終了しました。これは、私が使用していた代替方法でした。私はバージョン2プレビューを使用しています。 – ps2goat

+0

新しいフォーラムスレッドで別の質問をすることをお勧めします。したがって、フォーラム読者は質疑応答を容易に認識することができます。 –

+0

あなたの答えはAzure App Serviceのデプロイメントを記述しているので、新しいコミットをせずにデプロイメントをキューに入れることができるツール(Octopus Deploy)を使って説明したので、この質問と関連があると思います。シンプルなはい、いいえ(この時点では、明らかに新しい機能が絶え間なく追加されています)は高く評価されます。 – ps2goat

関連する問題