私はCIサーバにdevenv.exe
で自動的にソリューションを構築していますが、これはまったく問題ありません。デプロイの目的で、ナゲットパッケージ(OctoPack)を追加しました。そのドキュメンテーションはビルド時にプロパティをMSBuildに渡すように指示しますが、devenvを使用しているので不可能です。コマンドラインでdebuv.exeにmsbuildプロパティを渡す
調査の結果、PropertyGroupをプロジェクトの.csproj
に追加して、これらのプロパティを追加できることを知りました。これらのプロパティで特定の値(バージョン番号など)を置き換える必要があるので、私はそうしたくないので、プレースホルダをそれらの文字列に入れたくありません。さらに、私は、ローカルに開発してビルドするときではなく、CIサーバー上にビルドするときにのみ、それらのPropertyGroupをアクティブにする必要があります。
これは最終的に私の質問につながります。通常、MSBuild(/p:
経由)に渡されるプロパティをコマンドラインでdevenvに渡すことはできますか?
これには文書化された方法はありません。おそらくもっと良い方法があるからです。あなたのソリューションを構築するためにmsbuildを直接呼び出すことができます。あなたがdevenvを使用しなければならない他の選択肢は、環境変数としてそれらのプロパティを設定することですが、私は本当にそれに対してアドバイスします。 – stijn
devenvはMsBuildをラップし、多くのVS固有のプロパティを追加しますが、なぜMsbuild.exeの代わりにdevenv.exeを使用するのか不明です。 –
stackoverflowの投稿によると、devenvは、自動的にパッケージがインストールされます@ColeWu – Marv