XSharp-Anwendung mit automatisiertem Build

We encourage new members to introduce themselves here. Get to know one another and share your interests.
Post Reply
User avatar
pemo18
Posts: 81
Joined: Fri Apr 27, 2018 10:38 am
Location: Germany

XSharp-Anwendung mit automatisiertem Build

Post 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.
User avatar
robert
Posts: 4558
Joined: Fri Aug 21, 2015 10:57 am
Location: Netherlands

XSharp-Anwendung mit automatisiertem Build

Post 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 Development Team
The Netherlands
robert@xsharp.eu
User avatar
robert
Posts: 4558
Joined: Fri Aug 21, 2015 10:57 am
Location: Netherlands

XSharp-Anwendung mit automatisiertem Build

Post 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 Development Team
The Netherlands
robert@xsharp.eu
User avatar
pemo18
Posts: 81
Joined: Fri Apr 27, 2018 10:38 am
Location: Germany

XSharp-Anwendung mit automatisiertem Build

Post by pemo18 »

Hello Robert,

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

Regards,
Peter
User avatar
robert
Posts: 4558
Joined: Fri Aug 21, 2015 10:57 am
Location: Netherlands

XSharp-Anwendung mit automatisiertem Build

Post 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
XSharp Development Team
The Netherlands
robert@xsharp.eu
Post Reply