Tôi có một csproj mà tôi muốn kích hoạt việc mở một tệp cụ thể trong Visual Studio, chỉ khi mục tiêu được thực hiện từ bên trong Visual Studio, nhưng không phải từ dòng lệnh MSBUILD. Làm thế nào để tôi làm điều này?Trong MSBUILD, bạn có thể chỉ định điều kiện kiểm tra xem dòng lệnh hoặc VS đã khởi chạy nó như thế nào?
Trả lời
Nếu tôi hiểu chính xác bạn, bạn muốn mở tệp khi xây dựng trong studio trực quan nhưng không phải từ dòng lệnh với MSBuild?
Nếu đúng như vậy, hãy chỉ định PreBuild hoặc PostBuild trong Visual Studio.
- Nhấp chuột phải vào dự án trong solution explorer và chọn Thuộc tính
- Chọn Sự kiện tab
- Thêm hoặc là một Pre hoặc Đăng Build sự kiện để mở các tập tin mong muốn
Thêm thuộc tính vào tệp dự án .csproj, ví dụ:
<PropertyGroup>
<FromMSBuild>false</FromMSBuild>
</PropertyGroup>
Sau đó, trong tác vụ bạn muốn chạy, hãy đặt điều kiện đánh giá thuộc tính đó. Ví dụ, nếu bạn muốn mở notepad.exe bất cứ khi nào xây dựng được thực hiện từ dòng lệnh và KHÔNG visual studio:
<Target Name="BeforeBuild">
<Exec Command="C:\Windows\Notepad.exe" Condition="$(FromMSBuild)" />
</Target>
Tất nhiên, điều này phụ thuộc vào thiết lập $ (FromMSBuild) sở hữu một cách chính xác khi bạn chạy xây dựng thông qua dòng lệnh, như vậy:
MSBuild myProject.csproj /p:FromMSBuild=true
Trích từ MSDN page:
Khi xây dựng bên trong Visual Studio, các $ tài sản (BuildingInsideVisualStudio) được thiết lập là true. Điều này có thể được sử dụng trong tệp dự án của bạn hoặc .targets để làm cho bản dựng hoạt động khác nhau.
Ví dụ như thế nào nó có thể được sử dụng trong của bạn * Proj hoặc .targets file:
<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. Làm thế nào bạn có thể nhận được rspec để in backtraces kiểm tra thất bại * như * nó đang chạy?
- 2. MSBuild: Chỉ định một mục tiêu từ dòng lệnh
- 3. thời gian biên dịch xem MVC kiểm tra với msbuild
- 4. msbuild, định nghĩa Biểu tượng biên dịch có điều kiện
- 5. Làm cách nào để khởi chạy tập lệnh ruby từ dòng lệnh bằng tên của nó?
- 6. Làm cách nào để kiểm tra chỉ thị của trình biên dịch với Điều kiện MSBuild trong tệp .csproj?
- 7. Làm thế nào hoặc tại sao MSBuild chọn nền tảng x64 khi tôi không chỉ định nó thay vì AnyCPU?
- 8. Cách kiểm tra xem một dịch vụ có đang chạy từ dòng lệnh
- 9. Kiểm tra xem tập lệnh php có đang chạy không
- 10. chỉ định kiểm tra NUnit để chạy
- 11. Khởi chạy ColdFusion từ dòng lệnh
- 12. Trong MSBuild là nó có thể xác định nếu tôi đang chạy trong Visual Studio
- 13. Chỉ số phiên bản lắp ráp như một đối số dòng lệnh trong MSBuild
- 14. Có cách nào để kiểm tra xem tập lệnh có đang chạy bởi PowerShell ISE không?
- 15. Làm cách nào để kiểm tra xem dòng có trống trong tập lệnh shell không?
- 16. Python IDE nào có thể chạy dòng lệnh của tôi?
- 17. MSBuild vs devenv cho dòng lệnh xây dựng
- 18. Cách kiểm tra xem một đối số từ dòng lệnh đã được đặt chưa?
- 19. Kiểm tra nếu một lệnh đã chạy thành công
- 20. JavaScript - cách kiểm tra xem sự kiện đã được thêm
- 21. Chỉ có thể khởi tạo vật cố định một lần và sử dụng nó trong nhiều trường hợp kiểm tra?
- 22. Cách chỉ định phiên bản MSBuild trong tập lệnh nant?
- 23. Khi bạn đặt thuộc tính Đã kiểm tra trong RadioBox, bạn có thể chặn sự kiện CheckChanged không?
- 24. Cách kiểm tra xem tập lệnh có được bao gồm thông qua dofile() hoặc chạy trực tiếp trong Lua không?
- 25. Làm thế nào một tập lệnh có thể tìm thấy chính nó trong R chạy từ dòng lệnh?
- 26. Kiểm tra xem Chronometer có đang chạy
- 27. kiểm tra các tiện ích dòng lệnh
- 28. Làm thế nào tôi có thể kiểm tra xem với ASP.NET 4 được đăng ký để chạy trong IIS 7.5?
- 29. như thế nào shared_ptr làm việc trong điều kiện nếu
- 30. Kiểm tra xem nếu bạn đã khai báo với một câu lệnh if?
không - Tôi có một csproj với mục tiêu tùy chỉnh msbuild trong đó.. Khi tôi bấm xây dựng trong Visual Studio, tôi muốn nó kết quả trong một hành động đặc biệt diễn ra trong mục tiêu ... một cái gì đó giống như điều kiện = "StartedInVS()". Khi tôi chạy nó từ lệnh linke (tức là msbuild ...) Tôi muốn điều kiện đó thất bại. Vậy làm thế nào MSBUILD có thể phát hiện trong một mục tiêu như thế nào/cái gì được gọi là mục tiêu? – zekeyeehaw
Bạn đúng, lời xin lỗi của tôi. Câu trả lời trước của tôi là sai, và các sự kiện xây dựng sẽ được thực hiện bất kể. Tôi đã thêm một câu trả lời khác giải thích cách hoàn thành mục tiêu của bạn và tôi đã thử nghiệm nó lần này để chắc chắn. – BryanJ