ターゲットがVisual Studio内で実行され、MSBUILDコマンドラインでは実行されなかった場合にのみ、Visual Studioで特定のファイルを開くようにしたいというcsprojがあります。これはどうすればいいですか?MSBUILDでは、コマンドラインまたはVSがそれを起動したかどうかを確認する条件をどのように指定できますか?
11
A
答えて
0
あなたが正しく理解していれば、ビジュアルスタジオでビルドするときにファイルを開きたいのですが、MSBuildのコマンドラインからは開きませんか?
この場合、Visual StudioでPreBuildまたはPostBuildを指定します。
- 右ソリューションエクスプローラでプロジェクトを右クリックし、プロパティ
- を選択イベントタブ
- は、PREまたはPOSTは、目的のファイル
2
を開くためにイベントを構築する追加]を選択します
プロパティを.csprojプロジェクトファイルに追加します。例:
<PropertyGroup>
<FromMSBuild>false</FromMSBuild>
</PropertyGroup>
次に、実行するタスクで、そのプロパティを評価する条件を設定します。
もちろん<Target Name="BeforeBuild">
<Exec Command="C:\Windows\Notepad.exe" Condition="$(FromMSBuild)" />
</Target>
あなたが実行したときに、これは正しく(FromMSBuild)プロパティ$の設定に依存している:あなたがメモ帳を開きたい場合たとえば、ビルドは、Visual Studioをコマンドラインから実行していないときこれと同様に、コマンドラインからビルドする:
MSBuild myProject.csproj /p:FromMSBuild=true
32
引用MSDN pageから:
Visual Studioの内部で構築し、プロパティ$(BuildingInsideVisualStudio)がtrueに設定されています。プロジェクトや.targetsファイルでこれを使用して、ビルドを異なる動作にすることができます。
それはあなたの中で使用することができる方法の例* projのか.targetsファイル:
<PropertyGroup>
<MyProperty Condition="'$(BuildingInsideVisualStudio)' == 'true'">This build is done by VS</MyProperty>
<MyProperty Condition="'$(BuildingInsideVisualStudio)' != 'true'">This build is done from command line of by TFS</MyProperty>
</PropertyGroup>
関連する問題
- 1. コンピュータが再起動されたかどうかをどのように確認できますか?
- 2. MSBuildをコマンドラインからビルドするにはどうしたらよいですか?
- 3. onclickが条件を満たすかどうかを確認するsetTimeoutでリダイレクト
- 4. 指定されたドライブとそのサブフォルダにファイルが存在するかどうかを確認しますか?
- 5. C#アプリケーションがデスクトップまたはcmdシェルから起動されたかどうかを確認するにはどうすればよいですか?
- 6. ボタンがクリックされたかどうかを確認するための条件文を取得するにはどうすればよいですか?
- 7. C#の - どのようにプロセスが正常に起動したかどうかを確認するために
- 8. Powershell in MsBuild:スクリプトが成功したかどうかを確認しますか?
- 9. Windowsが再起動したかどうかを確認するには?
- 10. C#Windowsサービス用のOnRestart()イベントリスナーはありますか? Windowsサービスが再起動されたかどうかはどのように確認できますか?
- 11. Seleniumスクリプトがログインできたかどうかを確認するにはどうすればよいですか?
- 12. ファイルを移動またはコピーできるかどうかを確認する
- 13. プッシュ通知がiOSで配信されたかどうかはどのように確認できますか?
- 14. どのように条件付きコンパイルシンボル(DefineConstants)をmsbuildに渡しますか
- 15. 条件に重複が存在するかどうかを確認します。
- 16. カスタムパラメータを使ってアプリからアプリを起動するには、アプリが私によって起動されたかどうか確認できますか?
- 17. 条件を満たす値があるかどうかを確認する
- 18. 指定されたファイルがFASTAであるかどうかを確認する方法はありますか?
- 19. プロセスが再起動したかどうかを確認
- 20. コマンドラインまたはバッチファイルからCassini Web Serverを起動するにはどうすればよいですか?
- 21. スライダが移動したかどうかを確認します
- 22. Linuxプログラムは、どのように起動されたかを知ることができます:コマンドラインから?またはcronか他の何かによって?
- 23. .ipaを指定すると、そのデバッグまたはリリースビルドがどのように決定できますか?
- 24. 指定したJIDがすでにサーバーに接続されているかどうかを確認するにはどうすればよいですか?
- 25. オブジェクトのクラスが日付かどうかを確認するための条件
- 26. は、ローカルまたはネットワークパスかどうかを確認します
- 27. ユーザーからの指定された文字列が複素数であるかどうかを確認するにはどうすればよいですか?
- 28. WinActivateが成功したかどうかを確認するにはどうすればよいですか?
- 29. WebAppがiPhoneのホーム画面でURLまたはリンク経由で起動したかどうかを確認
- 30. ポインタが指定された配列を指しているかどうかを確認します
なし - 私はそれでカスタムMSBuildのターゲットでcsprojを持っています。私がVisual Studioでビルドをクリックすると、ターゲットで行われている特別なアクションが発生するようにしたいと思います.Content = "StartedInVS()"のようなものです。私がlinkeコマンド(つまりmsbuild ...)から実行すると、その条件が失敗するようにしたい。だからMSBUILDはどのようにターゲットをどのようにターゲットを検出することができますか? – zekeyeehaw
あなたは正しいです、私の謝罪です。私の以前の答えは間違っていて、ビルドイベントは関係なく実行されます。私はあなたの目標を達成する方法を説明する別の答えを加え、今度はそれをテストして確かめました。 – BryanJ