Czy ktoś widział ten błąd i wie jak to naprawić?
Nie można załadować zadania „TransformXml” z zestawu C: \ Program Files (x86) \ MSBuild \ Microsoft \ VisualStudio \ v11.0 \ Web \ Microsoft.Web.Publishing.Tasks.dll.
Nie można załadować pliku lub zestawu „file: /// C: \ Program Files (x86) \ MSBuild \ Microsoft \ VisualStudio \ v11.0 \ Web \ Microsoft.Web.Publishing.Tasks.dll” lub jednej z jego zależności. System nie może odnaleźć określonego pliku.
Upewnij się, że deklaracja jest poprawna, że zestaw i wszystkie jego zależności są dostępne oraz że zadanie zawiera publiczną klasę, która implementuje Microsoft.Build.Framework.ITask.
Gdzie indziej czytałem, że problem występuje, gdy nie masz zainstalowanego programu SQL Server. Ale mam SQL Express 2012 x64 zainstalowany z dodatkiem SP1. Używam również VS 2013 Professional.
Uruchomiłem dokładnie to samo rozwiązanie w VS 2012 express bez żadnych problemów.
źródło
Odpowiedzi:
Odpowiedzi udzielone przez Dai Boka i emalamisurę działają dobrze, o ile używasz programu Visual Studio 2012. W przypadku VS 2013 również się to nie udaje. Aby to działało ze wszystkimi wersjami programu Visual Studio, należy:
<Import Project="$(MSBuildExtensionsPath)\Microsoft\VisualStudio\v10.0\Web\Microsoft.Web.Publishing.targets" />
<Import Project="$(MSBuildExtensionsPath)\Microsoft\VisualStudio\v$(VisualStudioVersion)\Web\Microsoft.Web.Publishing.targets" />
Spowoduje to dynamiczne i prawidłowe ustawienie poprawnej wersji programu Visual Studio.
źródło
$(VisualStudioVersion)
zwraca wcześniejszą wersję :(Aby zabrać mój do pracy, po prostu skopiowałem mój
v10.0
folder i zmieniłem jego nazwę nav11.0
i od tego czasu wszystko wydaje się działać dobrze. Na razie to szybkie rozwiązanie.Ponieważ prawdopodobnie nie jest to najlepsze rozwiązanie i chociaż działa, zamierzałem spróbować zainstalować zestaw Microsoft Windows SDK dla Windows 7 i .NET Framework 4 Windows SDK dla Windows 7 i .NET Framework 4, ale trwa to zbyt długo. Ściągnij.
źródło
Walczyłem z tym problemem na naszym serwerze kompilacji od kilku dni, więc pomyślałem, że udokumentuję rozwiązanie, do którego doszedłem. Po pierwsze, mój serwer kompilacji ma zainstalowane rozszerzenia do publikowania w Internecie . Mogę użyć zadania TransformXml do treści mojego serca w projekcie aplikacji internetowej.
Aby użyć go poza projektem aplikacji internetowej, próbowałem dodać element UsingTask do mojego projektu i wskazać go we właściwym miejscu za pomocą właściwości ms build (jak pokazał Benjamin). Jednak nie było ich na moim serwerze kompilacji (ci, którzy mają łatwy dostęp do systemu plików swojego serwera kompilacji, prawdopodobnie mogą to pominąć i po prostu zainstalować odpowiedni pakiet w programie Visual Studio). Posunąłem się nawet do sztywnych wersji Visual Studio, ale zawsze zrzucało to na mnie ten błąd.
W końcu się poddałem, ściągnąłem biblioteki DLL z mojego lokalnego komputera:
Przesłałem je do kontroli źródła i dodałem ten folder do obszaru roboczego mojej kompilacji (Edytuj definicję kompilacji -> Ustawienia źródła -> Folder kontroli źródła). Stamtąd nie muszę nawet odwoływać się do folderu - oto jak wygląda moje UsingTask:
Teraz mogę użyć zadania TransformXml do syta z dowolnego projektu.
źródło
Aby rozwiązać problem,
To rozwiązało problem, ponieważ tworzy pliki DLL we wspomnianej ścieżce.
źródło
Tools → Get Tools and Features... → Individual Components: Windows 10 SDK (10.0.14393.0) and ASP.NET and web development tools
. Wydaje się, że to załatwiło sprawę.Dla VS2019
Wymieniłem
MSBuildToolsVersion
zVisualStudioVersion
.źródło
Ponieważ w moim folderze VisualStudio znajdują się tylko wersje 12.0, 14.0 i 15.0, edytuję plik projektu i zmieniam ścieżkę odniesienia z wersji 10.0 na 14.0. Następnie projekt buduje się pomyślnie.
Przed:
Po:
źródło
Prawidłową odpowiedzią na to jest zwolnienie projektu, o którym mowa, a następnie edytowanie pliku csproj, poszukanie wpisu, w którym odwołują się do ścieżki 10.0, i zmiana go tak, aby wskazywał na 11.0.
źródło
Potrzebujesz dwóch rzeczy, aby to zadziałało:
1) Zainstaluj narzędzia Visual Studio Build Tools (nie potrzebujesz całego programu Visual Studio, tylko VS Build Tools) z wybraną opcją „Web Development Tools” na serwerze kompilacji https://www.visualstudio.com/pl/thank -you-download-visual-studio /? sku = BuildTools & rel = 15
2) Upewnij się, że ścieżka do Microsoft.Web.Publishing.Tasks.dll jest poprawna
źródło
U mnie zaczęło działać po prostu dodając odwołanie do pakietu NuGet MSBuild.Microsoft.VisualStudio.Web.targets v14.0.0.3
Nie ma nawet potrzeby dodawania elementu UsingTask do pliku projektu, o czym wspomniał autor pakietu
A potem mogłem użyć TransformXml i innych zadań, zdefiniowanych w pakiecie, na przykład do transformacji app.config
źródło
Na wszelki wypadek, gdy ktoś używa csproj w stylu zestawu SDK, możesz to osiągnąć bez konieczności instalowania programu Visual Studio na serwerze kompilacji.
Najpierw należy zainstalować pakiet SlowCheetah nuget w swoim projekcie. Po zainstalowaniu w projekcie w stylu zestawu SDK zobaczysz następujące informacje.
Następnie upewnij się, że dodajesz atrybut GeneratePathProperty = "true" (patrz poniżej). Jest to bardzo ważne w następnej części, ponieważ pomoże ci znaleźć ścieżkę, w której pakiet nuget jest przywracany na twoim komputerze. George Dangl wyjaśnia to w swoim artykule tutaj .
Zaimportuj cele SlowCheetah do swojego projektu:
Możesz teraz użyć polecenia docelowego (w tym przypadku po opublikowaniu), aby zastosować niektóre przekształcenia niestandardowe. Jeśli zajdzie taka potrzeba, zawsze możesz zakodować na stałe nazwy plików poniżej, zamiast używać zmiennych z poniższego przykładu.
Jeśli wcześniej nie korzystałeś ze SlowCheetah , polecam to sprawdzić. Mają rozszerzenie programu Visual Studio, które ułatwi wyświetlanie podglądu plików transformacji.
źródło