2012-10-01 16 views
6

Tôi có ứng dụng Web 4 MVC Web Api mà ban đầu tôi đã xây dựng trong studio hình ảnh 2010. Là một phần của giải pháp này, tôi có một bộ kiểm tra đơn vị.

tôi đã trang trí các phương pháp kiểm tra đơn vị như sau

[AspNetDevelopmentServerHost("$(SolutionDir)\\DataCollectionService", "/")] 

sự hiểu biết của tôi là "$ (SolutionDir)" tham số chứa đường dẫn đến thư mục giải pháp, và làm cho các bộ kiểm tra chung chung hơn vì nó hoạt động trong nhiều môi trường. Điều này tất cả các công trình lớn trong visual studio 2010.

Tuy nhiên khi tôi mở dự án trong visual studio 2012 và cố gắng chạy bộ kiểm tra tôi nhận được lỗi sau

"thông điệp: con đường trang web '$ (SolutionDir) \ DataCollectionService' không tồn tại ...."

Nếu tôi thay đổi nó vào con đường chính xác như

[AspNetDevelopmentServerHost("D:\\CASLog\\Trunk\\DataCollectionService", "/")] 

nó hoạt động tốt, mặc dù nó không còn chung chung.

Tôi không chắc liệu nó có ý nghĩa hay không nhưng studio trực quan 2010 của tôi đã chia sẻ lại, trong khi studio hình ảnh của tôi năm 2012 thì không.

Bất kỳ ý tưởng nào đang diễn ra?

Trả lời

6

Bởi vì $(SolutionDir) thực tế là một macro. Macro không còn khả dụng trong VS2012 nữa. Một giải pháp thay thế là sử dụng biến môi trường (tùy chỉnh hoặc% PathToWebRoot%). Các biến môi trường được hỗ trợ bởi AspNetDevelopmentServerHost. Bạn có thể đặt giá trị trong một phương thức ClassInitializeAttribute với Environment.SetEnvironmentVariable.

Các vấn đề liên quan