Mam aplikację konsoli VS 2013, która ładuje dowolny plik rozwiązania (.sln) - kompiluje wszystkie projekty w nim za pomocą Roslyn i wyodrębnia informacje o wykorzystaniu API z modelu kompilacji.MSBuildWorkspace.OpenSolutionAsync poszukiwanie celów w Visual Studio/v14.0
Mam teraz do czynienia z tym szczególnym problemem - Kiedy uruchomię aplikację z Visual Studio 2013 (przy użyciu Ctrl-F5 lub F5) wszystko działa dobrze. Potrafię kompilować i wyciągać wszystkie informacje. Jednak kiedy otworzyć wiersz poleceń (cmd) i spróbuj uruchomić tę aplikację z konsoli pojawia się następujący błąd:
Unhandled Exception: System.AggregateException: One or more errors occurred. ---> Microsoft.Build.Exceptions.InvalidProjectFileException: The imported project "
C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v14.0\WebApplications\Microsoft.WebApplication.targets" was not found. Confirm that the path in the <Impor
When I run
Zanotować v14.0 tam. Dlaczego MSBuildWorkspace próbuje zajrzeć do katalogu v14.0 pod kątem wymaganych plików docelowych? Czy to dlatego, że zainstalowałem narzędzia MSBuild dla CTP i zmieniono ścieżkę domyślną, gdy uruchamiam elementy z prostego wiersza poleceń?
--Edit-- Oto import
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
Jednak wątpię, jest to zrobić ze stwierdzeniem Importuj jako takie. Jeśli uruchomię aplikację .exe konsoli z "Developer Command Prompt for Visual Studio 2013", wszystko znów będzie działać poprawnie.
Pokaż nam '' sw twoim pliku projektu. –
SLaks
Uderzam w ten sam problem. Czy kiedykolwiek byłeś w stanie to rozwiązać? – ChaseMedallion
Nie jest to prawdziwe rozwiązanie, ale jak już wspomniano, działa z wiersza poleceń VS. Jako obejście tego problemu utworzyłem plik wsadowy, który najpierw wywołuje "C: \ Program Files (x86) \ Microsoft Visual Studio 12.0 \ VC \ vcvarsall.bat", a następnie działa poprawnie. –