Visual Studio'da belirli bir dosyanın açılmasını tetiklemek istediğim bir csproj var, yalnızca hedef Visual Studio içinden değil, MSBUILD komut satırından yürütüldüyse. Bunu nasıl yaparım?MSBUILD'de, komut satırının mı yoksa VS'nin mi başlattığını kontrol eden bir durumu nasıl belirtebilirsiniz?
cevap
Seni doğru anlıyorsam, Visual Studio'da bir dosya açarken MSBuild ile komut satırından bir dosya açmak ister misin?
Böyle bir durumda, Visual Studio'da bir PreBuild veya PostBuild belirtin.
- Sağ
- istenen dosyayı
Bir .csproj proje dosyasına bir özellik ekleyin, örneğin:
<PropertyGroup>
<FromMSBuild>false</FromMSBuild>
</PropertyGroup>
Ardından çalıştırmak istediğiniz görevde, bu özelliği değerlendiren bir koşul koyun.
Elbette<Target Name="BeforeBuild">
<Exec Command="C:\Windows\Notepad.exe" Condition="$(FromMSBuild)" />
</Target>
çalıştırdığınızda, bu doğru (FromMSBuild) mülkiyet $ ayarlanmasına bağlıdır: Eğer notepad.exe açmak istiyorsanız Örneğin, inşa görsel stüdyo komut satırından yürütülür ve DEĞİLDİR zaman şöyle, komut satırı üzerinden inşa:
MSBuild myProject.csproj /p:FromMSBuild=true
Alıntı MSDN page den:
Visual Studio içindeki bina, mülkiyet $ (BuildingInsideVisualStudio) true olarak ayarlanır. Bu, projenizin veya .targets dosyalarında, yapının farklı şekilde davranmasına neden olacak şekilde kullanılabilir.
Örnek bunun kullanılabilecek nasıl senin * proj veya .targets dosyası:
<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. Kaydırma çubuğu durumu nasıl kontrol edilir? Zaten en üstte mi yoksa sonunda mı?
- 2. Dizin var mı, yoksa linux değil mi?
- 3. Emac'lerin kasada mı yoksa terminalde mi kontrol edileceği?
- 4. İşlemin 64 bit mi yoksa 32 bit mi olduğunu kontrol etmenin bir yolu var mı?
- 5. Nesnede var mı yoksa javascriptte mi var
- 6. Bir dosyanın python'da bir dizin mi yoksa normal dosya mı olduğunu nasıl kontrol edersiniz?
- 7. SQL satırının değeri sürekli nasıl kontrol edilir?
- 8. Dizginin son eki mi yoksa uzantı mı?
- 9. Javadoc yorum. İhtiyacınız mı yoksa gereksiz mi?
- 10. Bir python komut dosyasının modül olarak alındığını mı yoksa komut dosyası olarak mı çalıştırıldığını nasıl belirleyebilirim?
- 11. Dize bir şeye eşit mi yoksa ondan mı büyüktür?
- 12. Bir programın komut satırından mı yoksa web'den mi çalıştığını nasıl öğrenebilirim?
- 13. SQL Server yerel mi yoksa uzak mı?
- 14. Spark uygulamalarının durumu komut satırından nasıl kontrol edilir?
- 15. AVPlayer durumu nasıl kontrol edilir?
- 16. Bir değişkenin bir sayı mı, yoksa bir sayı mı olduğunu nasıl kontrol edebilirim?
- 17. Bir satırda durumu düzeltin mi?
- 18. Özellik, sürekli bir özellik mi yoksa (A => B) mi?
- 19. JSON verilerinin bir nesne mi yoksa nesne dizisi mi olduğunu nasıl kontrol edebilirim?
- 20. Bir eylemi kontrol eden akış tipi $ gözlemlenebilir
- 21. İşlemin durumu kontrol etme
- 22. Groovy yöntemi adlandırma kuralı mı yoksa sihir mi?
- 23. Bu bir kaynak sızıntısı mı, yoksa yanlış pozitif mi?
- 24. Kod Yorumlama: Kod açıklamalarınızı Arayüzlere mi yoksa Beton sınıflarına mı yoksa her ikisine mi yazıyorsunuz?
- 25. Bir dizgenin iki karakterini nasıl çift yapabilirim, yoksa tek mi, yoksa tek mi?
- 26. Stil içindeki kimliklerin tanımlanması güvenli mi yoksa bir felaket mi?
- 27. F: olayı f: metadata'sının mı yoksa değil mi?
- 28. x86 RISC mi yoksa CISC mi?
- 29. Web paketi, hangi modda izleme modunu başlattığını bildirebilir mi?
- 30. Stdin PHP'de bir tty aygıtı mı (terminal mi) yoksa boru mı?
hayır - İçinde özel Msbuild hedefleri olan bir csproj var.. Visual Studio'da oluşturmayı tıklattığımda, hedefte yer alan özel bir eylemle sonuçlanmasını istiyorum… Condition = "StartedInVS()" gibi bir şey. Komut linke (yani msbuild ...) çalıştırdığımda, bu koşulun başarısız olmasını istiyorum. Öyleyse, MSBUILD, bir hedefte hedefi nasıl/ne dediğini nasıl tespit edebilir? – zekeyeehaw
Haklısınız, özür dilerim. Önceki cevabım yanlış ve yapı olayları ne olursa olsun yürütülür. Hedefinizi nasıl gerçekleştireceğinizi açıklayan başka bir yanıt daha ekledim ve emin olmak için bu sefer test ettim. – BryanJ