I am planning to publish my WPF app in Microsoft Store using Desktop Bridge. App is using .NET Compiler Platform ("Roslyn"). My problem is that the app is currently failing 2 WACK tests.
Fail 1: Debug configuration. Error Found: The debug configuration test detected the following errors:
The binary Microsoft.Build.resources.dll is built in debug mode.
The binary Microsoft.Build.resources.dll is built in debug mode.
The binary System.Globalization.Calendars.dll is built in debug mode.
The binary System.Threading.Tasks.Parallel.dll is built in debug mode.
The binary Microsoft.Build.resources.dll is built in debug mode.
The binary System.Xml.XmlDocument.dll is built in debug mode.
The binary System.Diagnostics.FileVersionInfo.dll is built in debug mode.
The binary Microsoft.Build.Utilities.Core.resources.dll is built in debug mode.
The binary System.IO.FileSystem.DriveInfo.dll is built in debug mode.
The binary System.Net.Ping.dll is built in debug mode.
The binary System.ComponentModel.Primitives.dll is built in debug mode.
The binary Microsoft.Build.Utilities.Core.resources.dll is built in debug mode.
The binary Microsoft.Build.Tasks.Core.resources.dll is built in debug mode.
The binary System.Net.NameResolution.dll is built in debug mode.
The binary System.ComponentModel.dll is built in debug mode.
The binary System.Runtime.InteropServices.dll is built in debug mode.
The binary System.Diagnostics.Process.dll is built in debug mode.
The binary System.Collections.Concurrent.dll is built in debug mode.
The binary System.Reflection.Primitives.dll is built in debug mode.
The binary Microsoft.Build.Utilities.Core.resources.dll is built in debug mode.
The binary System.Text.Encoding.dll is built in debug mode.
The binary System.Reflection.dll is built in debug mode.
The binary Microsoft.Build.Tasks.Core.resources.dll is built in debug mode.
The binary System.IO.UnmanagedMemoryStream.dll is built in debug mode.
The binary System.IO.IsolatedStorage.dll is built in debug mode.
The binary System.Net.WebSockets.Client.dll is built in debug mode.
The binary System.Resources.Reader.dll is built in debug mode.
The binary System.Linq.Parallel.dll is built in debug mode.
The binary System.Collections.dll is built in debug mode.
The binary System.Linq.dll is built in debug mode.
The binary Microsoft.Build.Tasks.Core.resources.dll is built in debug mode.
The binary Microsoft.Build.Utilities.Core.resources.dll is built in debug mode.
The binary Microsoft.Build.Tasks.Core.resources.dll is built in debug mode.
The binary System.Diagnostics.Contracts.dll is built in debug mode.
The binary Microsoft.Build.Utilities.Core.resources.dll is built in debug mode.
The binary System.Diagnostics.Tools.dll is built in debug mode.
The binary System.Collections.NonGeneric.dll is built in debug mode.
The binary Microsoft.Build.Utilities.Core.resources.dll is built in debug mode.
The binary System.Linq.Expressions.dll is built in debug mode.
The binary System.Runtime.Handles.dll is built in debug mode.
The binary System.Net.Security.dll is built in debug mode.
The binary System.Threading.Timer.dll is built in debug mode.
The binary System.ComponentModel.EventBasedAsync.dll is built in debug mode.
The binary System.Net.WebHeaderCollection.dll is built in debug mode.
The binary Microsoft.Build.Tasks.Core.resources.dll is built in debug mode.
The binary Microsoft.Build.Utilities.Core.resources.dll is built in debug mode.
The binary System.IO.FileSystem.Watcher.dll is built in debug mode.
The binary Microsoft.Build.resources.dll is built in debug mode.
The binary Microsoft.Build.resources.dll is built in debug mode.
The binary Microsoft.Build.resources.dll is built in debug mode.
The binary Microsoft.Build.Utilities.Core.resources.dll is built in debug mode.
The binary System.Runtime.CompilerServices.VisualC.dll is built in debug mode.
The binary Microsoft.Win32.Primitives.dll is built in debug mode.
The binary Microsoft.Build.Tasks.Core.resources.dll is built in debug mode.
The binary System.Runtime.Extensions.dll is built in debug mode.
The binary System.Text.Encoding.Extensions.dll is built in debug mode.
The binary System.Security.Principal.dll is built in debug mode.
The binary Microsoft.Build.Utilities.Core.resources.dll is built in debug mode.
The binary System.Globalization.dll is built in debug mode.
The binary Microsoft.Build.resources.dll is built in debug mode.
The binary Microsoft.Build.Utilities.Core.resources.dll is built in debug mode.
The binary Microsoft.Build.Utilities.Core.resources.dll is built in debug mode.
The binary Microsoft.Build.resources.dll is built in debug mode.
The binary System.ObjectModel.dll is built in debug mode.
The binary System.Collections.Specialized.dll is built in debug mode.
The binary Microsoft.Build.resources.dll is built in debug mode.
The binary System.IO.Compression.ZipFile.dll is built in debug mode.
The binary System.AppContext.dll is built in debug mode.
The binary System.Diagnostics.TraceSource.dll is built in debug mode.
The binary Microsoft.Build.resources.dll is built in debug mode.
The binary System.Security.Claims.dll is built in debug mode.
The binary System.Console.dll is built in debug mode.
The binary Microsoft.Build.Tasks.Core.resources.dll is built in debug mode.
The binary Microsoft.Build.Tasks.Core.resources.dll is built in debug mode.
The binary System.IO.Pipes.dll is built in debug mode.
The binary Microsoft.Build.resources.dll is built in debug mode.
The binary Microsoft.Build.resources.dll is built in debug mode.
The binary System.Linq.Queryable.dll is built in debug mode.
The binary System.Security.Cryptography.Csp.dll is built in debug mode.
The binary System.Security.Cryptography.Primitives.dll is built in debug mode.
The binary System.IO.dll is built in debug mode.
The binary System.Dynamic.Runtime.dll is built in debug mode.
The binary System.Net.NetworkInformation.dll is built in debug mode.
The binary System.Security.Cryptography.X509Certificates.dll is built in debug mode.
The binary System.Resources.Writer.dll is built in debug mode.
The binary System.Net.Primitives.dll is built in debug mode.
The binary System.Net.Requests.dll is built in debug mode.
The binary System.Runtime.Serialization.Formatters.dll is built in debug mode.
The binary System.Runtime.Numerics.dll is built in debug mode.
The binary Microsoft.Build.Utilities.Core.resources.dll is built in debug mode.
The binary System.Xml.XmlSerializer.dll is built in debug mode.
The binary System.Resources.ResourceManager.dll is built in debug mode.
The binary System.IO.FileSystem.dll is built in debug mode.
The binary System.ComponentModel.TypeConverter.dll is built in debug mode.
The binary Microsoft.Build.Utilities.Core.resources.dll is built in debug mode.
The binary System.Text.RegularExpressions.dll is built in debug mode.
The binary System.Diagnostics.TextWriterTraceListener.dll is built in debug mode.
The binary System.Threading.Thread.dll is built in debug mode.
The binary Microsoft.Build.resources.dll is built in debug mode.
The binary Microsoft.Build.Tasks.Core.resources.dll is built in debug mode.
The binary Microsoft.Build.Tasks.Core.resources.dll is built in debug mode.
The binary Microsoft.Build.Utilities.Core.resources.dll is built in debug mode.
The binary Microsoft.Build.Tasks.Core.resources.dll is built in debug mode.
The binary System.Drawing.Primitives.dll is built in debug mode.
The binary Microsoft.Build.Tasks.Core.resources.dll is built in debug mode.
The binary System.IO.MemoryMappedFiles.dll is built in debug mode.
The binary Microsoft.Build.Tasks.Core.resources.dll is built in debug mode.
The binary System.Threading.dll is built in debug mode.
The binary System.Xml.XDocument.dll is built in debug mode.
The binary System.Net.WebSockets.dll is built in debug mode.
The binary Microsoft.Build.Tasks.Core.resources.dll is built in debug mode.
The binary System.Diagnostics.Debug.dll is built in debug mode.
The binary System.Security.Cryptography.Encoding.dll is built in debug mode.
The binary System.Xml.XPath.dll is built in debug mode.
The binary System.Runtime.Serialization.Json.dll is built in debug mode.
The binary System.Xml.ReaderWriter.dll is built in debug mode.
The binary System.Reflection.Extensions.dll is built in debug mode.
The binary System.Threading.Tasks.dll is built in debug mode.
The binary System.Threading.ThreadPool.dll is built in debug mode.
The binary Microsoft.Build.resources.dll is built in debug mode.
The binary System.IO.FileSystem.Primitives.dll is built in debug mode.
The binary System.Runtime.dll is built in debug mode.
Impact if not fixed: Microsoft Store doesn’t allow a debug version of an app.
Fail 2: Blocked executables Error Found: The blocked executables test has detected the following errors:
File CsToDartTranspiler.WPF\Microsoft.Build.dll contains a reference to a "Launch Process" related API kernel32.dll!CreateProcessW
File CsToDartTranspiler.WPF\Microsoft.Build.dll contains a reference to a "Launch Process" related API System.Diagnostics.Process.Start
File CsToDartTranspiler.WPF\Microsoft.Build.Utilities.Core.dll contains a reference to a "Launch Process" related API System.Diagnostics.Process.Start
File CsToDartTranspiler.WPF\Microsoft.Build.Tasks.Core.dll contains a reference to a "Launch Process" related API kernel32.dll!CreateProcessW
File CsToDartTranspiler.WPF\Microsoft.Build.Tasks.Core.dll contains a reference to a "Launch Process" related API System.Diagnostics.Process.Start
File Microsoft.Build.dll contains a blocked executable reference to "Microsoft\MSBuild".
File Microsoft.Build.dll contains a blocked executable reference to "MSBuild".
File Microsoft.Build.dll contains a blocked executable reference to "msbuild.exe".
File Microsoft.Build.dll contains a blocked executable reference to "SOFTWARE\Microsoft\MSBuild".
File Microsoft.Build.Framework.dll contains a blocked executable reference to "MSBuild".
File Microsoft.Build.Tasks.Core.dll contains a blocked executable reference to "cmd.exe".
File Microsoft.Build.Tasks.Core.dll contains a blocked executable reference to "MSBuild".
File Microsoft.Build.Tasks.Core.dll contains a blocked executable reference to "MSBuild.exe".
File Microsoft.Build.Utilities.Core.dll contains a blocked executable reference to "MSBuild".
File Microsoft.Build.Utilities.Core.dll contains a blocked executable reference to "MSBuild.exe".
File Microsoft.Build.Utilities.Core.dll contains a blocked executable reference to "cmd.exe".
File Microsoft.CodeAnalysis.Workspaces.Desktop.dll contains a blocked executable reference to "Msbuild".
File System.Runtime.InteropServices.dll contains a blocked executable reference to "DnX".
File System.Runtime.Serialization.Formatters.dll contains a blocked executable reference to "DnX".
File System.Security.Cryptography.Encoding.dll contains a blocked executable reference to "DnX".
File System.Text.Encoding.Extensions.dll contains a blocked executable reference to "DnX".
File System.Threading.dll contains a blocked executable reference to "DnX".
File System.Xml.XDocument.dll contains a blocked executable reference to "DnX".
File System.Xml.XmlSerializer.dll contains a blocked executable reference to "DnX".
File Microsoft.Build.resources.dll contains a blocked executable reference to "MSBuild".
File Microsoft.Build.resources.dll contains a blocked executable reference to "MSBuild.exe".
File Microsoft.Build.Tasks.Core.resources.dll contains a blocked executable reference to "MSBuild".
File Microsoft.Build.Utilities.Core.resources.dll contains a blocked executable reference to "MSBuild".
File Microsoft.Build.Tasks.Core.resources.dll contains a blocked executable reference to "Reg".
Impact if not fixed: Launching executable files is restricted on Windows 10 S systems. Apps that rely on this capability might not run correctly on Windows 10 S systems.
I am not sure if the app will be rejected from Store because of "Fail 2" (personally I am not interested in Windows 10 S mode).
All modules in my app are built with Release configuration. Here is the packages.config of the module referencing Microsoft.CodeAnalysis:
<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="Microsoft.CodeAnalysis" version="2.8.2" targetFramework="net461" />
<package id="Microsoft.CodeAnalysis.Analyzers" version="2.6.1" targetFramework="net461" developmentDependency="true" />
<package id="Microsoft.CodeAnalysis.Common" version="2.8.2" targetFramework="net461" />
<package id="Microsoft.CodeAnalysis.CSharp" version="2.8.2" targetFramework="net461" />
<package id="Microsoft.CodeAnalysis.CSharp.Workspaces" version="2.8.2" targetFramework="net461" />
<package id="Microsoft.CodeAnalysis.VisualBasic" version="2.8.2" targetFramework="net461" />
<package id="Microsoft.CodeAnalysis.VisualBasic.Workspaces" version="2.8.2" targetFramework="net461" />
<package id="Microsoft.CodeAnalysis.Workspaces.Common" version="2.8.2" targetFramework="net461" />
<package id="System.AppContext" version="4.3.0" targetFramework="net461" />
<package id="System.Collections" version="4.3.0" targetFramework="net461" />
<package id="System.Collections.Concurrent" version="4.3.0" targetFramework="net461" />
<package id="System.Collections.Immutable" version="1.5.0" targetFramework="net461" />
<package id="System.Composition" version="1.2.0" targetFramework="net461" />
<package id="System.Composition.AttributedModel" version="1.2.0" targetFramework="net461" />
<package id="System.Composition.Convention" version="1.2.0" targetFramework="net461" />
<package id="System.Composition.Hosting" version="1.2.0" targetFramework="net461" />
<package id="System.Composition.Runtime" version="1.2.0" targetFramework="net461" />
<package id="System.Composition.TypedParts" version="1.2.0" targetFramework="net461" />
<package id="System.Console" version="4.3.1" targetFramework="net461" />
<package id="System.Diagnostics.Debug" version="4.3.0" targetFramework="net461" />
<package id="System.Diagnostics.FileVersionInfo" version="4.3.0" targetFramework="net461" />
<package id="System.Diagnostics.StackTrace" version="4.3.0" targetFramework="net461" />
<package id="System.Diagnostics.Tools" version="4.3.0" targetFramework="net461" />
<package id="System.Dynamic.Runtime" version="4.3.0" targetFramework="net461" />
<package id="System.Globalization" version="4.3.0" targetFramework="net461" />
<package id="System.IO.Compression" version="4.3.0" targetFramework="net461" />
<package id="System.IO.FileSystem" version="4.3.0" targetFramework="net461" />
<package id="System.IO.FileSystem.Primitives" version="4.3.0" targetFramework="net461" />
<package id="System.Linq" version="4.3.0" targetFramework="net461" />
<package id="System.Linq.Expressions" version="4.3.0" targetFramework="net461" />
<package id="System.Reflection" version="4.3.0" targetFramework="net461" />
<package id="System.Reflection.Metadata" version="1.6.0" targetFramework="net461" />
<package id="System.Resources.ResourceManager" version="4.3.0" targetFramework="net461" />
<package id="System.Runtime" version="4.3.0" targetFramework="net461" />
<package id="System.Runtime.CompilerServices.Unsafe" version="4.5.0" targetFramework="net461" />
<package id="System.Runtime.Extensions" version="4.3.0" targetFramework="net461" />
<package id="System.Runtime.InteropServices" version="4.3.0" targetFramework="net461" />
<package id="System.Runtime.Numerics" version="4.3.0" targetFramework="net461" />
<package id="System.Security.Cryptography.Algorithms" version="4.3.1" targetFramework="net461" />
<package id="System.Security.Cryptography.Encoding" version="4.3.0" targetFramework="net461" />
<package id="System.Security.Cryptography.Primitives" version="4.3.0" targetFramework="net461" />
<package id="System.Security.Cryptography.X509Certificates" version="4.3.2" targetFramework="net461" />
<package id="System.Text.Encoding" version="4.3.0" targetFramework="net461" />
<package id="System.Text.Encoding.CodePages" version="4.5.0" targetFramework="net461" />
<package id="System.Text.Encoding.Extensions" version="4.3.0" targetFramework="net461" />
<package id="System.Threading" version="4.3.0" targetFramework="net461" />
<package id="System.Threading.Tasks" version="4.3.0" targetFramework="net461" />
<package id="System.Threading.Tasks.Parallel" version="4.3.0" targetFramework="net461" />
<package id="System.Threading.Thread" version="4.3.0" targetFramework="net461" />
<package id="System.ValueTuple" version="4.5.0" targetFramework="net461" />
<package id="System.Xml.ReaderWriter" version="4.3.1" targetFramework="net461" />
<package id="System.Xml.XDocument" version="4.3.0" targetFramework="net461" />
<package id="System.Xml.XmlDocument" version="4.3.0" targetFramework="net461" />
<package id="System.Xml.XPath" version="4.3.0" targetFramework="net461" />
<package id="System.Xml.XPath.XDocument" version="4.3.0" targetFramework="net461" />
</packages>
Simple test app for reproducing the issue: https://github.com/kinex/roslyn_test
How can I possibly fix these issues?
Both Fail 1 and Fail 2 can be ignored especially because they are originated from modules developed by Microsoft. Those tests are only optional tests in WACK so your app will be accepted in Windows Store even if those tests fail. For details see Windows Desktop Bridge app tests.
Some details about the reported fails:
Fail 1: All binaries *.resources.dll contain debug information due to an issue in some of the dependencies of Microsoft.CodeAnalysis nuget package (some discussion about the issue here). I don't know why other (executable) binaries like System.Collections.dll are reported to contain debug information, I assume it is some .NET Framework version related "feature". But luckily this can be ignored too.
Fail 2: Nothing can be done to fix these "issues". Microsoft.CodeAnalysis and related modules need to do what they need to do.