2012-10-01 40 views
6

Orijinal olarak Visual Studio 2010'da oluşturduğum bir .net 4 MVC Web API uygulaması var. Bu çözümün bir parçası olarak bir birim test paketine sahibim.

aşağıdaki

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

My anlayışı ile birim test yöntemleri dekore var "$ (SolutionDir)" parametresi çözüm dizinin yolunu tutan olmasıdır ve bunun yanı test paketi daha genel hale getirir çoklu ortamlarda çalışır. Görsel studio 2012 projeyi açın ve aşağıdaki hatayı alıyorum testleri çalıştırmak denediğinizde Bu, tüm 2010.

Ancak görsel stüdyoda inşaat büyük

"iletisi: Web sitesi yolu '$ (SolutionDir) \ DataCollectionService ben

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

Düzgün çalışır gibi kesin yolunu değiştirmek durumunda' onun artık jenerik olmasa da, "

.... yok.

Görsel stüdyomun 2012'si önemli değil ancak görsel stüdyomun 2010'un yeniden oynaştığından emin değilim.

Neler olup bittiği hakkında bir fikrin var mı?

cevap

6

Aslında $(SolutionDir) aslında bir makrodur. Makrolar artık VS2012'de mevcut değildir. Tek çözüm, bir ortam değişkeni (özel veya% PathToWebRoot%) kullanmaktır. Ortam değişkenleri AspNetDevelopmentServerHost tarafından desteklenmektedir. Değeri bir ClassInitializeAttribute yönteminde Environment.SetEnvironmentVariable ile ayarlayabilirsiniz.