Visual Studio – Blog https://blog.christianabele.de Christian Abele Thu, 18 Jul 2019 11:07:04 +0000 de-DE hourly 1 https://wordpress.org/?v=5.6 https://blog.christianabele.de/wp-content/uploads/2017/06/cropped-Unbenannt-1-32x32.jpg Visual Studio – Blog https://blog.christianabele.de 32 32 [c#] Objekte ohne Namensraum und Deklaration in XML serialisieren. https://blog.christianabele.de/2019/07/18/c-objekte-ohne-namensraum-und-deklaration-in-xml-serialisieren/ https://blog.christianabele.de/2019/07/18/c-objekte-ohne-namensraum-und-deklaration-in-xml-serialisieren/#comments Thu, 18 Jul 2019 11:04:33 +0000 https://blog.christianabele.de/?p=531 Heute wollte ich ein Objekt nach Plain XML ohne Namespaces und ohne XML-Deklaration serialisieren. Der XmlSerializer fügt jedoch einen Standard Namespace und die XML-Deklaration automatisch ein. Um das zu vermeiden gibt es die folgende Möglichkeit:

public string ToXml()
{
   //Ohne XML-Doc-Deklaration
   var settings = new XmlWriterSettings() {
                   Indent = false, OmitXmlDeclaration = true };
 
   var stream = new MemoryStream();
   using (XmlWriter xw = XmlWriter.Create(stream, settings))
   {
      //Leere Namespace-Deklaration
      var ns = new XmlSerializerNamespaces(
                         new[] { XmlQualifiedName.Empty });
      var x = new XmlSerializer(GetType(), "");
      x.Serialize(xw, this, ns);
   }
 
   return Encoding.UTF8.GetString(stream.ToArray()); 
}
]]>
https://blog.christianabele.de/2019/07/18/c-objekte-ohne-namensraum-und-deklaration-in-xml-serialisieren/feed/ 1
SharePoint: Erstellen einer WorkFlow-Vorlage mit Visual Studio https://blog.christianabele.de/2017/11/09/sharepoint-erstellen-einer-workflow-vorlage-mit-visual-studio/ https://blog.christianabele.de/2017/11/09/sharepoint-erstellen-einer-workflow-vorlage-mit-visual-studio/#respond Thu, 09 Nov 2017 13:47:45 +0000 https://blog.christianabele.de/?p=178 „SharePoint: Erstellen einer WorkFlow-Vorlage mit Visual Studio“ weiterlesen]]> Seit einigen Tagen versuche ich mittels Visual Studio eine SharePoint-Vorlage zu erstellen welche ich in beliebigen Listen/Bibliotheken wiederverwenden kann. Hierfür habe ich jedoch in den entsprechenden Workflow-Wizards in Visual Studio keine Option gefunden. Meine Workflows waren stets an eine definierte Liste gebunden und waren dann auch nur bei eben dieser Verfügbar.

Laut der SharePoint-Dokumentation sollte das jedoch möglich sein:

A workflow can be written as a template so that after it is deployed, it can be reused and associated with any list or library.

Nun habe ich jedoch eine vermeintliche Lösung gefunden. Wenn während der Erstellung eines neuen Listen-Workflows keine Bezugsliste angegeben wird, die Eigenschaft also leer gelassen wird, steht dieser Workflow in SharePoint als Vorlage zur Verfügung und kann an eine beliebige Liste  gebunden werden. Über den Menüpunkt „Workflow hinzufügen“ in einer SharePoint-Liste kann dann auch eine entsprechende Aufgabenliste und Verlaufsliste zur Laufzeit gebunden werden.

SharePoint-Systemhaus Stuttgart

]]>
https://blog.christianabele.de/2017/11/09/sharepoint-erstellen-einer-workflow-vorlage-mit-visual-studio/feed/ 0
SharePoint: WorkFlow bricht ab (System.ArgumentException: ContentTypeId) https://blog.christianabele.de/2017/11/08/sharepoint-workflow-bricht-ab-system-argumentexception-contenttypeid/ https://blog.christianabele.de/2017/11/08/sharepoint-workflow-bricht-ab-system-argumentexception-contenttypeid/#respond Wed, 08 Nov 2017 13:13:53 +0000 https://blog.christianabele.de/?p=174 „SharePoint: WorkFlow bricht ab (System.ArgumentException: ContentTypeId)“ weiterlesen]]> Nach dem Kopieren und Aktualisieren eines WorkFlows verweigerte SharePoint die Ausführung mit der folgenden Meldung:

RequestorId: 1a9862c8-3314-4e2a-a3e8-85d79f2cd7c9. Details: System.ArgumentException: ContentTypeId 
at Microsoft.Activities.Hosting.Runtime.Subroutine.SubroutineChild.Execute(CodeActivityContext context) 
at System.Activities.CodeActivity.InternalExecute(ActivityInstance instance, ActivityExecutor executor, BookmarkManager bookmarkManager) 
at System.Activities.Runtime.ActivityExecutor.ExecuteActivityWorkItem.ExecuteBody(ActivityExecutor executor, BookmarkManager bookmarkManager, Location resultLocation)

Das Wort ContentTypeId hat mir geholfen, die Ursache des Problems zu identifizieren. In meinem neuen Workflow-Task wurde die alte Workflow-TaskList verschoben. Somit war mein Custom-ContentType in der TaskList nicht mehr vorhanden.

Es gilt also zu prüfen ob die TaskList den eigenen ContentType enthält. Falls ja, prüfen ob der WorkFlow auch die korrekte TaskList nutzt.

Weiterführende Hilfe

SharePoint-Systemhaus Stuttgart

]]>
https://blog.christianabele.de/2017/11/08/sharepoint-workflow-bricht-ab-system-argumentexception-contenttypeid/feed/ 0
SharePoint Lookup-Spalte deklarativ über CAML XML hinzufügen https://blog.christianabele.de/2017/11/08/sharepoint-lookup-spalte-deklarativ-ueber-caml-xml-hinzufuegen/ https://blog.christianabele.de/2017/11/08/sharepoint-lookup-spalte-deklarativ-ueber-caml-xml-hinzufuegen/#respond Wed, 08 Nov 2017 06:48:34 +0000 https://blog.christianabele.de/?p=172 „SharePoint Lookup-Spalte deklarativ über CAML XML hinzufügen“ weiterlesen]]> <Field ID="{72a29af6-e5d0-4daa-9ee4-19b27397f7bf}" Name="MyCustomLookupColumn" DisplayName="My Custom Lookup Column" Type="Lookup" Required="FALSE" Group="Custom Site Columns" List="Lists\LookUpSourceList" ShowField="Title" PrependId="True"> </Field>

Es gibt hier drei Eigenschaften, die nicht in der Standardseitenspaltendefinition enthalten sind. Der erste ist „Liste“, wie vielleicht zu vermuten, zeigt es auf die URL der Liste in der Website. In diesem Beispiel weiß ich, dass ich die Titelspalte in einer Liste unter Lists\LookUpSourceList suche. Die nächste Eigenschaft ist „ShowField“. Richtig, das ist das Feld, das in der Lookup-Spalte angezeigt werden soll. Über die letzte Eigenschaft „PrependId“ wird definiert ob die Nachschlagspalte die ID vor dem Wert zurück geben soll.

SharePoint-Systemhaus Stuttgart

]]>
https://blog.christianabele.de/2017/11/08/sharepoint-lookup-spalte-deklarativ-ueber-caml-xml-hinzufuegen/feed/ 0
SharePoint: Activity could not be loaded because of errors in the XAML. https://blog.christianabele.de/2017/11/07/sharepoint-activity-could-not-be-loaded-because-of-errors-in-the-xaml/ https://blog.christianabele.de/2017/11/07/sharepoint-activity-could-not-be-loaded-because-of-errors-in-the-xaml/#respond Tue, 07 Nov 2017 09:57:22 +0000 https://blog.christianabele.de/?p=159 „SharePoint: Activity could not be loaded because of errors in the XAML.“ weiterlesen]]> Oder: Die Aktivität konnte aufgrund von Fehlern in der XAML nicht geladen werden.

Während der Entwicklung eines SharePoint-AddIns in Visual Studio habe ich einen Workflow zum Projekt hinzugefügt. Darauf überraschte mich die folgende Ansicht im Workflow-Designer.

In der Fehlerliste ist als Grund unter Anderem der folgende Fehler aufgeführt:

Typ "Microsoft.SharePoint.DesignTime.Activities.Design.ViewStateNameValue" wurde in Assembly "Microsoft.SharePoint.DesignTime.Activities.16.0.Design" nicht gefunden.

Ein Blick in die Referenzen zeigte in meinem Fall, dass die Bibliothek Microsoft.SharePoint.DesignTime.Activities.16.0.Design.dll überhaupt nicht referenziert wurde. Lediglich eine Datei namens Microsoft.SharePoint.DesignTime.Activities.16.0.dll.

Nachdem die fehlende Referenz zum Projekt hinzugefügt wurde, verschwand die Fehlermeldung und das Projekt ließ sich bauen.

SharePoint-Systemhaus Stuttgart

]]>
https://blog.christianabele.de/2017/11/07/sharepoint-activity-could-not-be-loaded-because-of-errors-in-the-xaml/feed/ 0