Support forum of the software localization tool Sisulizer


.NET, Delphi, ... - Sisulizer Localization Tool Support Home

Get in contact with the makers of Sisulizer.
Our forum is open for all questions around Sisulizer from customers and prospects.
Don't hesitate to register and ask. The Sisulizer team will answer ASAP.

Search     Help Home Sisulizer Website Download
Search by username
Not logged in - Login | Register 

 Moderated by: Sisusupport, Renate.Reinartz, Markus.Kreisel, Ilkka.Salmenius
New Topic Reply Printer Friendly
Issue with Build Automation in Docker Container (.NET 4.7.2 SDK) - Bugs and Quirks in Sisulizer - Technical Support (You need to be registered at the forum to write) - .NET, Delphi, ... - Sisulizer Localization Tool Support
AuthorPost
 Posted: Tue Jan 8th, 2019 11:41 am
PM Private Upload Quote Reply
steffen-wilke
Member
 

Joined: Tue Jan 8th, 2019
Location:  
Posts: 4
Status: 
Offline
Hi there,

The Setup
I'm currently in the process of migrating out build processes to a Jenkins based infrastructure with on-demand Docker Build containers.

Our company used Sisulizer to localize a number of software projects, including .NET/Delphi/Android applications.

For that, I've created a new Docker Image that is based on the Official Microsoft Image with the tag 4.7.2-sdk-20181211-windowsservercore-ltsc2016 with the following software specs:
- Windows Server 2016
- .NET Framework 4.7.2
- .NET Framework 4.7.2 SDK
- Contains all updates until 11.12.2018

Additionally, I've added the slmake 4.0.374 build tool and the Sisulizer.slo configuration file with the license and also some hint paths with the SDK's location:

<net>
<net4 sdk="C:\Program Files (x86)\Microsoft SDKs\Windows\v10.0A"/>
<net461 sdk="C:\Program Files (x86)\Microsoft SDKs\Windows\v10.0A"/>
<net472 sdk="C:\Program Files (x86)\Microsoft SDKs\Windows\v10.0A"/>
</net>


This is located in the "Documents" folder of our windows user that executes the build C:\Users\build\Documents\Sisulizer 4.

The Problem

When I try to build the satellite assemblies running

slmake create Localization\MY-PROJECT.slp -lang:En -w -e -nosave


the command line tool tells me that it cannot find the .NET 4.7.2 SDK:


> You should have .NET 4.7.2 SDK installed.

> Can't create the satellite assembly dll.

> .NET 4.7.2 framework tools not found. Make sure that .NET framework has been installed.

> "AL.exe" file does not exist.


I've double checked that everything is in place in the Docker Container and in fact, the .NET 4.7.2 SDK is present under C:\Program Files (x86)\Microsoft SDKs\Windows\v10.0A\bin\NETFX 4.7.2 Tools (see attachment). As mentioned above, this folder is also configured in the Sisulizer.slo file.

Reading The Sisulizer .NET Documentation, this path should be correct.

My Questions:
Why doesn't Sisulizer find and use this path?

Does Sisulizer search in the wrong directory (e.g. C:\Program Files\Microsoft SDKs\Windows\v10.0A)?

Do I have to configure anything else (apart from the Sisulizer.slo) to make slmake find the framework?

Is there any way to influence this (e.g. by setting a registry key or environment variable)?

Attachment: sdk-folder.PNG (Downloaded 4 times)

Back To Top PM Private Upload Quote Reply

 Posted: Tue Jan 8th, 2019 12:06 pm
PM Private Upload Quote Reply
Markus.Kreisel
Administrator


Joined: Sat Apr 8th, 2006
Location: Monschau, Germany
Posts: 3172
Status: 
Offline
Hi Steffen,
Sisulizer uses the SDK-Tools to build the binaries. The messages comes from the MS Tools. Sisulizer has no infuence on these. The question must be: why does MS build tools fail to find and load the needed tools with official packages.

We found, that some SDKs are missing parts or links to them. The solution in all cases was:
a) either install Visual Studio. It comes with a complete set of SDK in different versions. A demo will do as long as it comes with all SDK versions.

or
b) install older SDKs. Perhaps you might want to simply clone the SDK folder from your working machine.
I would love to have some more technical answer why this sometimes happens and was never addressed by MS.

Hope this helps
Markus



____________________
http://www.sisulizer.com - Three simple steps to localize
Back To Top PM Private Upload Quote Reply

 Posted: Tue Jan 8th, 2019 12:27 pm
PM Private Upload Quote Reply
steffen-wilke
Member
 

Joined: Tue Jan 8th, 2019
Location:  
Posts: 4
Status: 
Offline
Hi Markus,

thank you for your quick response. I'll try that now and get back to you as soon as I have any results.

One question: What exactly is the purpose of specifying the .NET SDK path in the Sisulizer.slo? Is this path even used for building or is it more of a general "detection mechanism" which framework versions are installed?

Steffen

Back To Top PM Private Upload Quote Reply

 Posted: Tue Jan 8th, 2019 12:37 pm
PM Private Upload Quote Reply
Markus.Kreisel
Administrator


Joined: Sat Apr 8th, 2006
Location: Monschau, Germany
Posts: 3172
Status: 
Offline
The path is used to termine where to start the right process for the given SDK. After it is started the SDK itself loads binaries - sometimes from other, older SDK paths.
That AL.EXE can't be found is a common issue.

Markus



____________________
http://www.sisulizer.com - Three simple steps to localize
Back To Top PM Private Upload Quote Reply

 Posted: Tue Jan 8th, 2019 01:34 pm
PM Private Upload Quote Reply
steffen-wilke
Member
 

Joined: Tue Jan 8th, 2019
Location:  
Posts: 4
Status: 
Offline
Hi Markus,

I was able to fix the problem as follows:

Now, this might sound confusing, but it seems like the .NET 4.7.2 SDK cannot work without the .NET 4.6.1 SDK being installed. This is due to a simple reason: some parts of the new .NET Framework and MSBuild still have some hardcoded references to the 4.6.1 SDK Folder.

MsBuild.exe.config for example evaluates the variables FrameworkSDKRoot and SDK40ToolsPath from the hardcoded registry key HKEY_LOCAL_MACHINESOFTWAREMicrosoftMicrosoft SDKsNETFXSDK.6.1WinSDK-NetFx40Tools-x86_(at)_InstallationFolder.

Solution

After installing the Microsoft.VisualStudio.Workload.ManagedDesktopBuildTools from the Visual Studio Build Tools in the Docker Image, I was able to run slmake as expected.
Apparently, it's that package that is responsible for Installing the .NET 4.6.1 SDK.

From my Dockerfile:
RUN Start-Process -Wait -PassThru -FilePath C:/install/vs_buildtools.exe -ArgumentList '
--add Microsoft.VisualStudio.Workload.ManagedDesktopBuildTools
--quiet
--nocache
--norestart
--wait';


Edit: Installing only the Microsoft.Net.Component.4.6.1.SDK component also worked.

This means, that it's currently not possible to have a build server that only has .NET 4.7.2 installed because the building process always requires .NET 4.6.1 SDK due to some hardcoded internal logic.

What a pain...

Thank you for your help.

Best Regards,
Steffen

Last edited on Tue Jan 8th, 2019 02:09 pm by steffen-wilke

Back To Top PM Private Upload Quote Reply

 Posted: Tue Jan 8th, 2019 01:39 pm
PM Private Upload Quote Reply
steffen-wilke
Member
 

Joined: Tue Jan 8th, 2019
Location:  
Posts: 4
Status: 
Offline
Additional Information
Microsoft itself has tracked this issue just yesterday
https://github.com/Microsoft/msbuild/issues/4049

Back To Top PM Private Upload Quote Reply

 Posted: Tue Jan 8th, 2019 01:44 pm
PM Private Upload Quote Reply
Markus.Kreisel
Administrator


Joined: Sat Apr 8th, 2006
Location: Monschau, Germany
Posts: 3172
Status: 
Offline
Hi Steffen,
nice find. Indeed that is what we see since ages. In the beginning sometimes even .NET 2.x was needed :-( If you search the forum you'll see some posts about that. It always could only be solved with installing older SDKs or VS (which seems to have either a work around or simply installs all SDKs.).
Thanks for you informative post. It might help a lot of users.
Markus



____________________
http://www.sisulizer.com - Three simple steps to localize
Back To Top PM Private Upload Quote Reply

Current time is 06:28 am  
.NET, Delphi, ... - Sisulizer Localization Tool Support > Technical Support (You need to be registered at the forum to write) > Bugs and Quirks in Sisulizer > Issue with Build Automation in Docker Container (.NET 4.7.2 SDK)



WowUltra modified by Sisulizer Copyright © 2007-18 by Jim Hale - Based on WowBB Copyright © 2003-2006 Aycan Gulez

Impress - Privacy statement

Sisulizer software localization tool - Three simple steps to localize