2012-06-08 14 views
5

Używam MSBuild do spakowania i opublikowania mojej aplikacji Asp.Net MVC 3, .Net 4. Z powodzeniem zrobiłem to już dla aplikacji MVC 1.0 .Net 3.5.MSBuild IIS issue

Ilekroć obejmują ustawienia IIS (IncludeIisSettings=true) w moim pliku .proj otrzymuję następujący błąd kompilacji:

C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v10.0\Web\Microsoft.Web.Publishing.targets(2046, 5): error MSB4044: The "EscapeTextForRegularExpressions" task was not given a value for the required parameter "Text".

+0

Wydaje się, że występuje, gdy 'BaseIntermediateOutputPath' jest pusta, co z kolei przekazuje pustą wartość do parametru" Tekst ", do którego odnosi się błąd. Przebudowa może pomóc. – KMoraz

+0

Wystąpił ten sam błąd, po migracji usługi w chmura chmury lazury do aplikacji internetowej. Ustawienie IncludeIisSettings na False w .csproj rozwiązuje to. – Magu

Odpowiedz

8

miałem ten sam problem na moim serwerze kompilacji.

Pakiet doskonale sprawdzi się na mojej maszynie programistycznej, ale zakończy się niepowodzeniem z dokładnie tym samym błędem, który wystąpił na moim serwerze budowania. Dla mnie problem został spowodowany faktem, że na mojej maszynie do budowania aplikacja nie jest zarejestrowana w IIS.

Problem zaczął się, gdy włączono testy lokalne w usługach IIS Express w projekcie oraz w pewien pośredni sposób, który umożliwia ustawienie wspomnianego ustawienia IncludeIisSettings=true. Powoduje to, że potok wdrażania sieci wysyła zapytanie do usług IIS o szczegóły witryny. Ponieważ serwer kompilacji nie miał zainstalowanych IIS 7 lub IIS Express, nie mógł uzyskać tych ustawień. To ostatecznie prowadzi do powyższego błędu, ponieważ parametr przekazany do zadania EscapeTextForRegularExpressions jest pusty.

Moje rozwiązanie było ustawić IncludeIisSettings do False w aplikacjach .wpp.targets pliku (patrz here na przykład .wpp.targets pliku). Jeśli jawnie określisz ustawienia dla IIS, nie powinno to stanowić problemu.

Mogłem również naprawić kompilację, rejestrując witrynę za pomocą IIS Express przy użyciu WebMatrix. Uruchomienie strony w Visual Studio powinno mieć taki sam efekt.

1

Problem, który miałem, dotyczył uprawnień, w szczególności ustawień UAC w Windows 7 po zmianie laptopów.

Po dokładnym sprawdzeniu poprzedniej konfiguracji zdałem sobie sprawę, że nadal mam domyślne ustawienia UAC. Aby zmienić przejdź do Start > Control Panel > User Accounts > User Accounts > Change User Account Control Settings. Następnie przeciągnij pasek w dół do Never notify.

Oto niektóre dodatkowe objawy zaobserwowałem, które mogą być pomocne:

Kiedy wpadłem msbuild lokalnie z IncludeIisSettings=true dostałam ten sam błąd jak w pytaniu.

Po pewnych frustracjach i błędnych obrotach nie mogłem zrozumieć, dlaczego chociaż jestem administratorem, otrzymuję błędy uprawnień w odpowiednich obszarach, np. podczas ustawiania IncludeIisSettings=false, a następnie próba uruchomienia pliku wdrażania, otrzymałem błąd uprawnień.

Dlatego postanowiłem zbadać ustawienia UAC i znaleźć rozwiązanie.

+0

Niestety mi nie pomogło. Uruchomiłem VS jako administrator, zmieniłem UAC na najniższy i nadal mam ten sam błąd. Ale dobre dla ciebie! (Windows 10, wypróbowany z włączeniem iis włączania i wyłączania) – ignacy130

0

Rozwiązaniu, które według nas miało ustawienie IncludeIisSettings = true i mamy pomyślną kompilację bez zadania "The" EscapeTextForRegularExpressions "nie podano wartości wymaganego parametru" Text "." błąd:

  • Zainstaluj Visual Studio na serwerze Build (już zrobione).
  • Zainstaluj usługi IIS na serwerze budowania.
  • W IIS na domyślnej stronie WWW dodaj wiązanie dla https (port 443) i użyj certyfikatu zainstalowanego przez Visual Studio (IIS Express Development Certificate).