Có ai biết cách tải cấu hình xây dựng hiện tại $ (Cấu hình) trong mã C# không?Tạo cấu hình trong mã C#
Trả lời
Bạn không thể, không thực sự. Những gì bạn có thể làm là xác định một số "Biểu tượng biên dịch có điều kiện", nếu bạn nhìn vào trang "Xây dựng" của các thiết lập dự án, bạn có thể đặt chúng ở đó, để bạn có thể viết #if câu lệnh để kiểm tra chúng.
Biểu tượng DEBUG được tự động tiêm (theo mặc định, điều này có thể được tắt) để gỡ lỗi xây dựng.
Vì vậy, bạn có thể viết mã như thế này
#if DEBUG
RunMyDEBUGRoutine();
#else
RunMyRELEASERoutine();
#endif
Tuy nhiên, đừng làm điều này trừ khi bạn đã lý do chính đáng. Một ứng dụng hoạt động với hành vi khác nhau giữa các bản dựng gỡ lỗi và bản phát hành không tốt cho bất kỳ ai.
Tôi không tin rằng bạn có thể tiêm vào thời gian biên dịch vào hội đồng nhưng một cách bạn có thể đạt được là sử dụng MSBuild và thêm nó vào tệp cấu hình của ứng dụng.
Xem bài viết trên blog này về làm thế nào để tạo file cấu hình đa môi trường sử dụng MSBuild - http://adeneys.wordpress.com/2009/04/17/multi-environment-config/
Hoặc bạn có thể viết một nhiệm vụ MSBuild đó sẽ chỉnh sửa một tập tin biên soạn nhất định (C# hoặc tập tin VB) và có chạy mà trong nhiệm vụ BeforeBuild
. Nó sẽ khá khó khăn vì bạn cần phải làm việc ra nơi để tiêm nó vào tập tin, nhưng miễn là bạn đã có một số loại tokenization thiết lập bạn sẽ có thể làm điều đó. Tôi cũng nghi ngờ nó sẽ là đẹp!
Nếu bạn dỡ tải dự án của mình (trong trình đơn nhấp chuột phải) và thêm dự án này ngay trước thẻ </Project>
, thẻ này sẽ lưu tệp có cấu hình của bạn vào đó. Sau đó bạn có thể đọc lại để sử dụng trong mã của bạn.
<Target Name="BeforeBuild">
<WriteLinesToFile File="$(OutputPath)\env.config"
Lines="$(Configuration)" Overwrite="true">
</WriteLinesToFile>
</Target>
Tôi đã sử dụng giải pháp của Vaccano. Tôi phải tự động thay đổi một số cấu hình dựa trên mỗi cấu hình xây dựng, không chỉ gỡ lỗi hoặc phát hành và giải pháp này hoạt động tốt cho tôi. Cảm ơn. – MsBugKiller
Có thể sử dụng các biểu tượng có điều kiện để đạt được điều này. Bạn có thể định nghĩa các biểu tượng tùy chỉnh các Thuộc tính> Xây dựng các cửa sổ thiết lập cho từng dự án và sử dụng các chỉ thị #if để kiểm tra chúng trong mã.
Ví dụ cho biết cách xác định biểu tượng UNOEURO và cách sử dụng mã đó trong mã.
bool isUnoeuro = false;
#if UNOEURO
isUnoeuro = true;
#endif
- 1. cấu hình mã java
- 2. Cấu hình Xml hoặc Cấu hình thông qua mã?
- 3. Mã cấu hình trong Visual Studio 2005
- 4. JGit cấu hình proxy trong mã
- 5. Cấu hình C++ 11 trong Netbeans
- 6. tạo một mảng cấu trúc trong C++
- 7. Cấu hình tạo cấu hình iPhone Bật tính năng
- 8. C# Tệp cấu hình DLL
- 9. cấu hình game trong C# và XNA
- 10. Làm cách nào để tạo WCF EndPointBehaviors trong Mã thay vì cấu hình?
- 11. Tạo XML trong Mã C++
- 12. Cấu hình/tạo Linux, --prefix?
- 13. Tạo cấu trúc C trong Cython
- 14. Mã Mùi: Cấu hình cơn ác mộng
- 15. Mã/cấu hình khác nhau trong Bản phát hành & Gỡ lỗi (Obj-C)
- 16. Ưu điểm và nhược điểm của tệp cấu hình wcf so với cấu hình mã
- 17. Tạo mã C++
- 18. tập tin cấu hình Parse trong C/C++
- 19. Cấu hình của các dòng mã trong Visual Studio 11
- 20. Phân phối cấu hình git bằng mã
- 21. Cách định cấu hình vị trí của mã được tạo trong IntelliJ?
- 22. log4net log4net.Util.PatternString định cấu hình từ mã
- 23. Cách định cấu hình CDB trong Trình tạo Qt?
- 24. Cách sử dụng tệp cấu hình ứng dụng trong C#?
- 25. Tạo cấu hình chạy thử trong VS 2008
- 26. Mã định danh cho cấu hình win64 trong Qmake
- 27. nHibernate 3.2 cấu hình cơ sở dữ liệu trong mã?
- 28. Mã hóa thông tin nhạy cảm trong cấu hình JBoss
- 29. Phần Cấu hình tùy chỉnh trong App.config C#
- 30. svcutil không tạo tệp cấu hình
Nó có thể giúp khi phát triển Windows Services (không cần phải cài đặt/gỡ lỗi dễ dàng hơn) – Scoregraphic
@Scoregraphic: Tuy nhiên với hành vi hoàn toàn khác (dịch vụ so với ứng dụng dòng lệnh) !!! –
Tại sao biểu thức điều kiện không tìm thấy cấu hình tùy chỉnh của tôi? Tôi có mã như thế này: #if WCFDebug/* mã của tôi */#endif - nhưng nó chỉ đơn giản là không tìm thấy nó. Tôi đã thêm cấu hình bên trong cài đặt. – FrenkyB