Visual Studio-Popup: "Der Vorgang konnte nicht abgeschlossen werden."


199

Wenn ich versuche, ein Projekt lokal oder auf einem Team Foundation Server (TFS) zu öffnen , wird in einem modalen Fenster Folgendes angezeigt:

Der Vorgang konnte nicht abgeschlossen werden: Nicht angegebener Fehler

Oder die gleiche Meldung, jedoch mit "Klasse nicht definiert .." anstelle von "Nicht angegebener Fehler".

Diese Fehler traten heute früher auf, als ich versuchte, einen Teil meiner Arbeit auf dem Team Foundation Server einzuchecken. Ich habe versucht, Visual Studio 2008 auf demselben Computer zu verwenden, erhalte jedoch immer noch den gleichen Fehler. Ich habe auch danach gegoogelt, aber keine der Lösungen scheint mir zu helfen.

Ich habe auch die neuesten Updates von Windows Update installiert.

Irgendwelche Ideen?


1
Wenn Sie dies treffen, überprüfen Sie die Antworten auch hier: stackoverflow.com/questions/32180470/…
BlackICE

22
In 75% der Fälle wird dies durch einen Neustart von VS behoben.
Don Cheadle

2019 und immer noch ein Problem, jetzt in VS2017. Peinlich
user5226582

Projekt entladen und neu laden funktioniert bei mir.
Zhang

Antworten:


238

Haben Sie versucht, dieYour_Solution_FileName.suo Datei zu löschen ?

Die .suoDatei sollte sich im selben Ordner wie Ihre .slnDatei oder im .vsOrdner für neuere Versionen von Visual Studio befinden. Der .vsOrdner ist möglicherweise ausgeblendet.


Update für Visual Studio 2017
In VS 2017 .suobefinden sich die Dateien in einem anderen Ordner: Sie finden die .suoDatei inYourSolutionFolder\.vs\YourSolutionName\v15\.suo

Der .vsOrdner ist ausgeblendet, und die .suoDateien sind eine Datei ohne Namen mit nur der .suoErweiterung.


 
Erläuterung

Die .suoDatei enthält verschiedene Informationen wie die Liste der geöffneten Dateien und einige Einstellungen, die nicht in der Lösungsdatei gespeichert sind (wie das Startprojekt), und andere Dinge.

Normalerweise können Sie die .suoDatei ohne Probleme löschen . Möglicherweise müssen StartUp ProjectSie die Lösung anschließend für Ihre Lösung festlegen .

Um auf dem sicheren Weg zu bleiben, können Sie die .suoDatei umbenennen und dann erneut versuchen, die Lösung zu starten, um festzustellen, ob diese Hilfe hilfreich ist.

Nach meiner Erfahrung stürzt VS manchmal beim Start ab, weil in einem Quellcode ein Fehler vorliegt. Aufgrund dieses Fehlers kann VS den Code nicht kompilieren und stürzt dann ab, weil ohne kompilierten Code das Formular im Entwurfsmodus nicht angezeigt werden kann. In diesem Fall wird durch Löschen der .suoDatei die Situation behoben, da die Liste der geöffneten Dateien zurückgesetzt wird, sodass die Lösung gestartet werden kann, ohne dass Dateien geöffnet / angezeigt werden.


Wenn das Löschen der .suo-Datei nicht funktioniert
Hier ist eine Liste anderer Dinge, die Sie versuchen können, wenn das Löschen der .suoDatei das Problem nicht behebt:

  • Starte den Computer neu
  • Bereinigen Sie den Windows-temporären Ordner
  • Reinigen Sie die Lösung in der IDE (Menü \ Build \ Clean Solution).
  • Bereinigen Sie die Lösung manuell (löschen Sie die kompilierte DLL / EXE- /bin/Datei im Ordner und leeren Sie die temporären Dateien, die VS während des Erstellungsprozesses erstellt hat, im /obj/Ordner (jedes Projekt, aus dem die Lösung besteht, verfügt über diese Ordner, bereinigen Sie sie also alle).
  • Versuchen Sie, jedes einzelne Projekt, aus dem die Lösung besteht, einzeln zu öffnen und zu erstellen, um zu verstehen, welches Projekt das Problem verursacht
  • Verstehen Sie, welche Änderung / Bearbeitung / Modifikation den Fehler ausgelöst hat, und machen Sie ihn rückgängig (das Quellcodeverwaltungstool kann helfen ...)
  • Wenn Sie benutzerdefinierte Steuerelemente haben: Überprüfen Sie den Code im Konstruktor. Die VS-IDE ruft den Konstruktor Ihrer benutzerdefinierten Steuerelemente auch zur Entwurfszeit auf, und es können seltsame Dinge passieren (zur Entwurfszeit funktionieren einige Eigenschaften nicht, Ihre Verbindungszeichenfolge ist wahrscheinlich nicht ausgefüllt ...)

Als letztes...

  • Versuchen Sie, ein VS-Update zu installieren
  • Versuchen Sie, VS-Erweiterungen zu deaktivieren (falls Sie welche installiert haben ...)
  • Versuchen Sie, alle externen DLLs / Steuerelemente zu aktualisieren, auf die in Ihrer Lösung verwiesen wird
  • Versuchen Sie, Windows zu aktualisieren

@sergiol Haben Sie versucht, von Ihnen installierte Visual Studio-Addins zu deaktivieren? Irgendwann können sie die IDE zum Absturz bringen
Max

4
@sergiol Versuchen Sie, alle .suo zu entfernen. Ich lösche die .suo, die oben im Lösungsordner vorhanden ist und nicht funktioniert hat. Dann suche ich einen in einem versteckten Ordner "\ .vs \ ci-ucsp \ v14" und arbeite schließlich.
Erick Asto Oblitas

3
In Visual Studio 2015 bestand die Lösung darin, die .user-Dateien zu löschen, die neben der .xproj-Datei liegen.
Sixones

Das Löschen der .suo-Datei im .vs-Ordner hat nicht funktioniert. Außerdem hatte ich keine .user-Datei zum Löschen.
Jorge Cabot

1
Ich bin hier angekommen und habe ähnliche Probleme gesehen. Hier haben keine Antworten funktioniert. Ich habe gerade festgestellt, dass mein Problem durch die Tatsache verursacht wurde, dass sich meine Lösung auf meinem Onedrive befindet. Onedrive wurde aktualisiert und verfügt über eine neue Funktion namens "Dateien bei Bedarf". Diese Funktion verursacht ähnliche Probleme wie hier beschrieben. Weitere Details finden Sie hier. Developercommunity.visualstudio.com/content/problem/134518/…
Leon Degeling

115

Manchmal geht es nur darum , Visual Studio 2015 zu schließen und dann wieder zu öffnen.

Update: Visual Studio 2017 anscheinend auch.

Ich habe dies auf einigen Maschinen geschehen lassen.

Das passiert doch .

"Haben Sie versucht, die Datei" Your_Solution_FileName.suo "zu löschen?"

Auch Computerabstürze wie z. B. Stromausfall usw.

Gilt für Update 2 und Update 3 sowie für die neue Basis ohne Updates ...


3
Dies ist ein schrecklicher ärgerlicher Fehler (der, der dadurch behoben wurde). Eine Möglichkeit, das Problem zu erkennen, ohne tatsächlich zu überprüfen, besteht darin, dass das Ausgabefenster nicht angezeigt wird (kein Ausgabefenster == Starten Sie VS neu, um das Problem zu beheben).
Thomas Andreè Wang

Ich bevorzuge immer noch gegen 2013 für einige Dinge wie Nuget und einige verschiedene TFS-Online-Verbindungen und verschiedene Bereiche der Stabilität. Insgesamt ist das Jahr 2015 fantastisch, aber sicherlich nicht ohne Probleme.
Tom Stickel

Ich hatte neulich ein weiteres Problem mit VS 2015, bei dem ich die localhost-Seite nicht laden konnte. Fiddler telefonierte tonnenweise mit etwas, das ich vorher noch nicht gesehen hatte. Ich weiß nicht warum, aber ich und ein anderer Entwickler haben alle möglichen Dinge ausprobiert, bevor ich beschlossen habe, VS 2015 zu schließen. Dann hat es beim erneuten Öffnen gut funktioniert. Ein wenig nervig, aber kein Zurück von 2015 zu diesem Zeitpunkt (sp1 ist auch installiert)
Tom Stickel

Ich hatte VS 2015 Update 2 auf einem Computer und konnte plötzlich keine NEUE Webanwendung mehr erstellen (Konsolen-Apps usw. Ich konnte). Ich verbrachte zu viel Zeit damit, das Problem herauszufinden. Am Ende führte ich eine Reparatur durch, indem ich die VS 2015 plus Update 2 Bundle ... sehr ärgerlich, da ein Neustart und andere Probleme nicht behoben wurden. - Nur ein weiteres Problem, von dem ich dachte, ich würde es den Kommentaren hinzufügen. (Ich habe vs 15 Preview auf diesem Computer installiert, daher frage ich mich, ob diese Installation das Problem verursacht hat.)
Tom Stickel

73

VS 2015 -> Alle Dateien löschen, die ComponentModelCachefür mich gearbeitet haben:

C:\Users\**username**\AppData\Local\Microsoft\VisualStudio\14.0\ComponentModelCache


2
Sie können auch die Datei Microsoft.VisualStudio.Default.err in diesem Verzeichnis anzeigen, um festzustellen, was das Problem verursachen könnte.
Chris Lunt

1
@ChrisLunt Dieser Vorschlag zeigte eine Erweiterung, die Fehler auslöste. Nur das zu entfernen hat es für mich gelöst.
Boggin

2
Hat bei mir nicht funktioniert, das Löschen dieser Dateien hat absolut keine Auswirkungen. Außerdem werden keine zusätzlichen Zeilen in der .errDatei angezeigt, wenn ich das Problem sehe.
Aleksei Petrenko

Danke. Es hat perfekt für mich funktioniert. Das Löschen der .suo-Datei und aller anderen Dinge funktioniert nicht. Dies ist die perfekte Lösung.
Sapatelbaps

19

Ich bin auf dasselbe Problem gestoßen, aber das Löschen der .suo-Datei hat nicht geholfen. Ich konnte das Projekt nur laden, indem ich die Datei "Your_Project_FileName.csproj.user" löschte .

- -

Einige Monate später stieß ich erneut auf dieses Problem, aber dieses Mal half das Löschen der Datei "Your_Project_FileName.csproj.user" nicht so wie beim letzten Mal. Ich habe es endlich geschafft, ein IIS Express-Problem zu finden. Ich habe die Site aus meiner applicationhost.config entfernt und Visual Studio sie neu erstellen lassen. Dadurch konnte das Projekt endgültig geladen werden.


2
Ich habe alle Sites in der applicationhost.config entfernt und konnte das Projekt dann neu laden.
Scott Munro

Ja, ich hatte gerade dieses Problem, als ich die Git-Zweige der Lösung wechselte. Konnte nicht bauen, konnte nicht debuggen, nichts. Das Löschen der * .user-Datei hat es geschafft.
Kristian

12

Für mich wurde dieses Problem durch widersprüchliche <site>Konfigurationen in der folgenden Datei verursacht.

C:\Users\smunro\Documents\IISExpress\config\applicationhost.config

Ich habe diese Datei bearbeitet, um alle siteElemente im folgenden Element zu entfernen . Möglicherweise möchten Sie etwas selektiver vorgehen und versuchen, die Site zu identifizieren, die den Konflikt verursacht, und genau das zu entfernen.

<configuration><system.applicationHost><sites>

Beachten Sie, dass ich links die <siteDefaults>, <applicationDefaults>und <virtualDirectoryDefaults>Elemente gibt.

Beim erneuten Laden des Projekts <site>wurde automatisch ein neues Element erstellt.


1
Das ist eher so. Das Seltsamste war, dass es in VS2015 fehlerhaft war, aber in VS2010 gut durchging ..: S Oldie, aber Goodie? :)
Armee

1
Wenn Sie Visual Studio 2015 verwenden, löschen Sie die Datei applicationhost.config aus <Root-of-Solution> \ .vs \ config \. Dies funktionierte für mich, da ich mit den Bindungen herumgespielt hatte.
Richard.Davenport

7

Stellen Sie sicher, dass Ihr Ausgabefenster sichtbar ist, bevor Sie die Taste F5 drücken. Wenn Sie Ihr Ausgabefenster maximiert haben, öffnet Visual Studio das Ausgabefenster gelegentlich nicht neu, wenn Sie es neu starten.

Einfache Lösung: 1. Starten Sie Visual Studio neu. 2. Verwenden Sie vor dem Erstellen eines Projekts Ansicht-> Ausgabefenster

Wenn Sie jetzt bauen, sollte es funktionieren.

(Ich bin mir ziemlich sicher, dass das Löschen von .suo- und .user-Dateien nur funktioniert, weil Visual Studio auf das Standardlayout zurückgesetzt wird, wodurch sichergestellt wird, dass das Ausgabefenster sichtbar ist.)


Dies scheint der Schlüssel zu einer funktionierenden Lösung zu sein! Ich habe das Ausgabefenster sicherlich nicht absichtlich geschlossen und nicht einmal daran gedacht, nachzuschauen, ob "Ausgabe" vorhanden ist. Was auch immer das zugrunde liegende Problem sein mag, das fehlende Ausgabefenster war Teil des Problems. HINWEIS: In meinem Fall reichte Ansicht-> Ausgabe (Strg + Alt + O) nicht aus, um das Fenster anzuzeigen. Ich musste dann Visual Studio 2015 neu starten.
Cos Callis

Ja. Wenn Sie versuchen, Strg-Alt-O oder Ansicht-> Ausgabe auszuführen, nachdem Sie einen Vorgang ausgeführt haben, der versucht, in das Ausgabefenster zu schreiben (z. B. einen Build), ist es zu spät - Sie müssen neu starten.
HiredMind

5

Führen Sie eventvwr über die Befehlszeile aus, um festzustellen, ob Anwendungsfehler aufgezeichnet wurden.

Dies kann zu einer tatsächlichen Fehlermeldung führen, die nützlicher ist.


3

Ich hatte ein ähnliches Problem beim Öffnen von Razor Views

  • Ich habe mich bei meinem Azure-Konto angemeldet, bei dem ich aufgefordert wurde, meine Anmeldeinformationen erneut einzugeben.
  • Starten Sie VS 2015 Update 1 neu

3

Ich hatte den gleichen Fehler. Ich konnte keine Klasse und Komponente meiner Lösung öffnen. Ich habe den ComponentModelCache gelöscht und alle anderen Lösungen getestet. Aber kein Ergebnis. Endlich hat es mir geholfen: SCHLIESSEN SIE IHR VISUELLES STUDIO UND ÖFFNEN SIE ES WIEDER!


3

Ich musste ein Webprojekt entfernen. Es gab eine alte referenzierende DLL-Datei, und ich musste das Webprojekt bereinigen, und dann funktionierte es.


2

Ich habe ein altes Projekt aus der Lösung entfernt, danach ist der Fehler aufgetreten. Ich musste die SLN-Datei im Editor öffnen und die DLL-Referenz für das alte Projekt löschen, das ich entfernt hatte. Danach hat es funktioniert.


Ich hatte ein ähnliches Problem. Die SLN-Datei hatte eine Website (kein Webprojekt), die auf ein Projekt verweist, das aus der Lösung entfernt wurde. In meinem Fall habe ich das fehlende Projekt einfach wieder hinzugefügt und alles ist gut.
Herr TA

2

Lösung: Ich habe diesen Dialog erhalten, als ich versucht habe, meine .sln zu erstellen / neu zu erstellen / zu bereinigen. Um dies zu beheben, musste ich die an die Anwendung gebundene IIS-Site stoppen und Visual Studio neu starten. (Dann starten Sie Ihre Site erneut).

Wie ich die Ursache entdeckt habe: Es scheint, dass dies eine ziemlich allgemeine Meldung für eine Vielzahl von Problemen ist. Am Ende habe ich mein spezielles Problem anhand der Ereignisprotokolle von IIS auf einige gesperrte Dateien zurückverfolgt.

Die Lösungen zum Löschen aller Sites sind eine Art "Nuke it from orbit" -Ansatz, der als letzter Ausweg verwendet werden sollte.


2

Ich denke, StyleCop ist der Grund für dieses Problem. So,

  1. Schließen Sie VS.
  2. Ich habe alle StyleCop.Settings- und StyleCop.Cache-Dateien in allen Lösungsprojekten entfernt.
  3. Ich habe auch alle Projekte * .csproj.user Datei entfernt.
  4. Starten Sie VS neu.

1

Der Fehler "Der Vorgang konnte nicht abgeschlossen werden" kann auch durch ein C ++ - Projekt verursacht werden, das auf ein anderes Projekt verweist, das in der Lösung nicht mehr vorhanden ist.

Wenn Sie ein Projekt aus einer Lösung entfernen, entfernt Visual Studio normalerweise alle Verweise darauf aus anderen Projekten in der Lösung.

In meinem Fall habe ich jedoch Projekte zwischen Lösungen geteilt, sodass sich eine fehlerhafte Projektreferenz eingeschlichen hat, und das Löschen der fehlerhaften Referenzen hat den Fehler behoben.

Verwenden von Visual Studio 2012.


0

Keine .SUO-Dateien mehr, aber das Löschen von .user-Dateien funktioniert. Zu Ihrer Information: Ich debugge ein Silverlight-Projekt


0

Wenn Sie Visual Studio 2015 verwenden und an ASP.NET arbeiten, erstellen Sie eine neue Website, kopieren Sie die vorherigen Dateien auf die neue Site und erstellen Sie Ihre Site. Ihr altes Projekt verweist immer noch auf einige alte Startparameter.


Dies ist eine sehr extreme Lösung. Bevor Sie diese Lösung verwenden, probieren Sie andere in diesem Thread beschriebene Lösungen aus. Das erste, was manchmal funktioniert (zumindest für mich), ist das Schließen und erneutes Öffnen von Visual Studio.
Pocjoc

0

Bei der Arbeit an VB.Net-Projekten in Visual Studio 2005 bin ich häufig auf dieses Problem gestoßen. Normalerweise löst das Deaktivieren der Option " Visual Studio-Hosting-Prozess aktivieren" in den Debug-Eigenschaften der Anwendung das Problem für mich. Wenn der Hosting-Prozess aktiviert ist, können normalerweise Aufrufe bestimmter APIs betroffen sein.

Um diese Option zu deaktivieren, müssen Sie die folgenden Schritte ausführen:

  • Klicken Sie im Projektmappen-Explorer mit der rechten Maustaste auf Ihr Projekt
  • Eigenschaften auswählen
  • Auf der Registerkarte Debug finden Sie eine Kontrollkästchenoption zum Aktivieren des Visual Studio-Hostingprozesses . Deaktivieren Sie diese Option.
  • Speichern Sie Ihre Änderungen

Visual Studio 2005? ... Ich sehe diese Option nicht einmal in neueren Versionen von Visual Studio ...
Morty

@ArielAltamirano Wie gesagt, diese Option ist in Studio 2005 vorhanden, nicht sicher über die neuesten Versionen
Sri Murthy Upadhyayula

0

Arbeitete für mich, nachdem ich Visual Studio (2015 Community Edition) geschlossen, geöffnet und das Projekt erneut geöffnet hatte. Ist mir passiert, weil ich dieses Projekt als Abhängigkeit in einem anderen Projekt verwendet habe und es in einer anderen Instanz geöffnet wurde, die Änderungen jedoch nicht nachgeahmt wurden .


0

Für dieses Problem habe ich es behoben, indem ich die .user-Datei gelöscht habe, die die Visual Studio Project-Benutzeroptionen enthält. Diese Datei befindet sich an derselben Stelle, an der sich Ihre SLN-Datei befindet. Stellen Sie außerdem nach dem Löschen dieser Datei aus dem Projekt sicher, dass Sie Ihre Lösung neu laden, damit sie wirksam wird.



0

Gehen Sie zu Ausführen und geben Sie "inetmgr" ein, dh IIS wird geöffnet, und wählen Sie in der rechten Ecke des Aktionsfensters die Option ".NET Framework-Version" ändern. Ändern Sie es.

Installieren Sie danach Ihr Visual Studio 2010 neu. Es funktioniert auf meinem Computer und aus diesem Grund wird es freigegeben.


0

Für mich lag es daran, dass ich einen Eintrag hinzugefügt hatte, um die Site in IISExpress an eine bestimmte IP-Adresse zu binden, und meine IP-Adresse sich geändert hatte. Ich habe einen Hinweis aus dem Ereignisprotokoll.

Hoffe das hilft jemandem!


0

Ich habe ein Upgrade von einer Drittanbieter-App (entity3d) auf .NET4.6 durchgeführt. Ich würde diese Meldung erhalten, wenn ich versuchen würde, die Lösung neu zu laden, wenn sie beim Start nicht geladen würde. Meine Lösung bestand darin, mit der rechten Maustaste auf die Lösung zu klicken und "Fehlende Funktionen installieren" auszuwählen, was mich dazu veranlasste, das herunterzuladen, was ich brauchte. Der Download im Popup hat nicht funktioniert, daher habe ich nur das .NET-Targeting-Pack für das installiert, worauf ich mich befand (4.6), und dies hat das Problem behoben.


0

Ich habe alle .suo- und .user-Dateien gelöscht und VS 2008 neu gestartet. Aber es hat bei mir nicht funktioniert. Die folgenden Schritte haben bei mir funktioniert.

Open project file (.csproj) in notepad.
Removed all configurations from <Configurations></COnfigurations> tag.
Then add one by one configuration and reload project in VS.
Build the project or view project properties.

0

Bei Visual C ++ - Projekten kann dies durch eine falsch formatierte Version verursacht werden vcsproj.filters Datei verursacht werden.

In meinem Fall hatte jemand eine manuelle Verzweigungszusammenführung durchgeführt und die Filterdatei nicht korrekt zusammengeführt. Visual Studio lud und erstellte die Datei weiterhin ohne Warnungen, gab jedoch die Warnung "Nicht angegebener Fehler" aus, wenn versucht wurde, Dateien zum Projekt hinzuzufügen oder daraus zu entfernen.

Scannen Sie Ihre vcsproj.filtersDatei nach doppelten Einträgen oder Zeilen, die so aussehen, und entfernen Sie sie. Schließen Sie das Projekt und öffnen Sie es erneut.

<ClInclude Include="..\..\path\to\sourcefile.h" />

Visual Studio Enterprise 2017


0

In meinem Fall fehlte 'Silverlight 5 SDK' und daher werden meine Silverlight-Projekte nicht geladen. Beim Versuch, das Projekt neu zu laden, wird die Meldung "Der Vorgang konnte nicht abgeschlossen werden" angezeigt. Sobald ich installiert habe, ist das Problem gelöst.


0

Geben Sie hier die Bildbeschreibung einStarten Sie das Visual Studio neu, da Admin in vielen Fällen daran arbeitet.


0

In unserem Fall trat das Problem auf, nachdem Änderungen an Debug -> myProject Properties -> Web vorgenommen wurden, insbesondere die Projekt-URL geändert und dann VS geschlossen wurde. Beim erneuten Öffnen hatte VS Probleme beim Parsen der neuen URL und warf den Fehler aus. Eine weitere Konfiguration über die VS-Benutzeroberfläche war leider nicht möglich, da das Projekt nicht geladen werden kann.

Da die Änderungen an der Dateikonfiguration in der Datei myProject.csproj.user beibehalten werden, die sich im Stammordner des Projekts befindet, konnte das Problem leicht behoben werden, indem einfach die Datei myProject.csproj.user entfernt wurde. Zu diesem Zeitpunkt wurde das Projekt geladen und die Benutzerdatei wurde neu generiert, wenn das Projekt das nächste Mal im Debug-Modus ausgeführt wurde.

Beachten Sie, dass die Projekt-URL in der neu generierten Datei von der Standardeinstellung geändert werden musste http: // localhost: 58995 auf https: // localhost: 44302 bevor auf die gesamte Anwendung zugegriffen werden konnte, da die App unter SSL gesperrt ist. Ihre Ports können unterschiedlich sein. Dies wurde über VS unter Debug -> myProject Properties -> Web nach dem Ausführen des Projekts durchgeführt.


0

Keine der oben genannten Lösungen hat bei mir funktioniert. Aber folgendes tat:

  1. Öffnen Sie den aktuellen Ordner im Windows Explorer
  2. Verschieben Sie den Ordner manuell an den gewünschten Speicherort
  3. Öffnen Sie die .csproj-Datei. VS erstellt dann automatisch die SLN-Datei.

0

Ich hatte ein ähnliches Problem in einem iOS-Projekt im Vergleich zu 2019, es läuft auf einer VM in einem Mac. Ich schließe das Visual Studio und starte es neu. Das Problem war behoben

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.