xsharp.eu • XSharp-Anwendung mit automatisiertem Build
Page 1 of 1

XSharp-Anwendung mit automatisiertem Build

Posted: Fri Mar 08, 2019 9:57 am
by pemo18
Hallo Zusammen,

Mein folgendes Problem ist eventuell etwas speziell, so dass ich nicht unbedingt mit einer Antwort rechne.

Ich möchte eine (beliebige) XSharp-Anwendung (in dem konkreten Fall eine WPF-Anwendung) mit Visual Studio 2017 in einem automatisierten Build-System erstellen (z.B. AzureDevOps, vormals VSTS, es könnte aber auch irgendein anderes Buildsystem etwa CircleCI oder AppVeyor sein).

Ich kopiere bei jedem Build das komplette Verzeichnis C:Program Files (x86)Microsoft Visual Studio2017CommunityMSBuildXSharp (statt "Community" kann das Verzeichnis auch "Professional" oder "Enterprise" heißen - je nach VS-Version) in das gleichnamige Verzeichnis auf dem Build-System, so dass die Build-Umgebung eigentlich mit der lokalen Umgebung identisch sein sollte.

Lokal lässt sich das Projekt erstellen, auf dem Buildsystem erhalte ich bei der Umsetzung der Xsproj-Datei durch Msbuild.exe nur einen allgemeinen Fehler (z.B. "Object reference not set") , der (für mich) keinerlei Rückschlüsse auf die Ursache erlaubt.

Meine Frage: Fehlen vielleicht doch noch Dateien, die für einen Build mit Visual Studio benötigt werden? Hat das jemand schon geschafft?

Es ist nicht "überlebensnotwendig", aber es wäre schön, wenn diese Option auch für meine XSharp-Projekte zur Verfügung stehen würde. Es kann eigentlich nur eine Kleinigkeit sein.

Vielen Dank,
Peter

PS: Ich glaube meine Frage/Problem lässt sich auch deutlich einfacher formulieren:

Wie kann ein XSharp-Projekt (lokal) durch direkten Aufruf von Msbuiild.exe mit der Xsproj-Datei erstellt werden? Wenn das funktioniert, sollte es auch in jeder Build-Umgebung funktionieren.

XSharp-Anwendung mit automatisiertem Build

Posted: Fri Mar 08, 2019 10:52 am
by robert
Peter,

You also need to copy the Msbuild support files. For Vs2017 these are in
"c:Program Files (x86)Microsoft Visual Studio2017EnterpriseMSBuildXSharp"

And to be safe also set a registry key:
HKEY_LOCAL_MACHINESOFTWAREWOW6432NodeXSharpBVXSharp
XSharpPath = "C:Program Files (x86)XSharp"

XSharp-Anwendung mit automatisiertem Build

Posted: Fri Mar 08, 2019 10:55 am
by robert
O and I forgot: for WPF you need to register the X# codeDom provider, because WPF generates source code during the build.
- XSharpCodeDomProvider.dll must be added to the GAC
- And in the file c:WindowsMicrosoft.NETFrameworkv4.0.30319Configmachine.config you must add an entry in the <configuration> section:
<system.codedom>
<compilers>
<compiler language="XSharp" extension=".prg" type="XSharp.CodeDom.XSharpCodeDomProvider,XSharpCodeDomProvider, Version=2.0.0.9, Culture=neutral, PublicKeyToken=ed555a0467764586, ProcessorArchitecture=MSIL" />
</compilers>

XSharp-Anwendung mit automatisiertem Build

Posted: Fri Mar 08, 2019 2:39 pm
by pemo18
Hello Robert,

Thanks a lot. This could be the missing part. I will try it out and report.

Regards,
Peter

XSharp-Anwendung mit automatisiertem Build

Posted: Fri Mar 08, 2019 2:45 pm
by robert
Peter,
Can you write a short "step by step" description if you have this working, so I can add that to the X# documentation ?

Robert