1

I completed a xamarin forms application and provided to Android Market. No problem everything worked fine. it is live. I tested UWP in debug and release. Created package and made local app certification test using the package, all checks green, passed. I created submission and published into Microsoft Store. it failed certification with the message.

Debug configuration test

FAILED
Debug configuration
Error Found: The debug configuration test detected the following errors:
The binary Syncfusion.SfNumericTextBox.XForms.dll is built in debug mode.
Impact if not fixed: Windows Store doesn’t allow a debug version of an app.
How to fix: Please make sure the app isn’t linking to any debug versions of a framework and it is built with release configuration with optimization enabled. If this is a managed app please make sure you have installed the correct version of .NET framework.

I didnt install this package at all into my project. however there is another package from syncfusion called sfDatagrid which has this dll as dependency. So it adds a reference into my XF and UWP projects. I dont need and use this dll at all. thats why I tried followings

  1. remove the references and nuget references from project.json file on both projects. deleted bin, obj folders under each project (XF and UWP), cleaned temp folder. Rebuild entire solution.

  2. first failed. so I let it reference to be there but set local copy as "false". It also didnt work.

  3. there project.lock.json file, this still holds reference, i tried to remove all references manually but It still didnt work

This is obviously error with the package provider. I already reported it and they registered as an incident but they will publish newer version at the end of the month even if they fix. So my question is Is there anyway that I can tell compiler to exclude this dll when creating package?

In Android probably since I am using "Full Linking", it excludes this dll while there is no reference to this dll.

In UWP, I do use Compile with Native tool Chain option as shown below but obviously it doesnt do the same job.

enter image description here

Emil
  • 6,411
  • 7
  • 62
  • 112
  • first question, do you use 'Syncfusion.SfNumericTextBox.XForms.dll' which I assume is a custom control. If not then just remove that reference from your UWP project. – JoeTomks Jul 14 '17 at 15:43
  • @Digitalsa1nt as I said above, I dont use it at all and I dont have any reference to it. I tried to remove the reference manually but it doesnt work. I am seeing dll is copied under \bin\x86\Release and \bin\x64\Release and obj folders as well. – Emil Jul 14 '17 at 15:46
  • sweet, delete your bin and obj folder and rebuild the UWP project. This worked for another similar question that cropped up last week that I answered here. https://stackoverflow.com/a/44952044/4486115 same principles should apply here. – JoeTomks Jul 14 '17 at 15:48
  • @Digitalsa1nt I deleted everything. bin. obj, under every single project uwp, xf. cleaned temp folder. cleaned and rebuilt solution. It doesnt help – Emil Jul 14 '17 at 15:50
  • Theres nothing wrong with the settings you pictured above. So theres obviously some kind of dependancy on that assembly somewhere, I know you said you've removed the references, but is there any nuget packages still associated with the build? – JoeTomks Jul 14 '17 at 15:55
  • @Digitalsa1nt there is not direct nuget package associated (installed) but another package called sfdatagrid has a dependency on it. when I install this package, automatically it references it and whatever i tried, I cant prevent uwp package to include sfNumericTextbox. I am looking for some Build Pre- or Post actions telling that dont build or copy this dll. or similar linking option like xamarin.android to not include unused references. – Emil Jul 14 '17 at 16:05
  • as far as i am aware there is no currently available way in a native UWP project in a xamarin solution to exclude an internal dependancy that a nuget package has on an assembly. As you've already raised this issue with the package provider, unfortunately there's not a lot you can do. – JoeTomks Jul 14 '17 at 16:13

1 Answers1

1

Syncfusion has reposted the NuGet package with the release version of the DLL.

Be sure to clear your NuGet cache before building (https://www.syncfusion.com/kb/6987/how-to-clear-nuget-cache).

jkh
  • 3,618
  • 8
  • 38
  • 66
  • is this any different than just deleting downloaded packages from nuget folder? – Emil Jul 25 '17 at 22:28
  • @batmaci I ran the "nuget locals all -clear" on one machine, and then on another machine I tried just deleting the packages manually. On this second machine, in addition to the packages in the .nuget folder, I also had to delete files in other locations like the http-cache (all locations listed with "nuget locals all -List"). When done correctly, you will notice that the modified date on the SfNumericTextBox dll is 7/17/2017 instead of 7/3/2017 like before. – jkh Jul 25 '17 at 23:32
  • thanks for the hint. I will try this tomorrow and let you know about results. – Emil Jul 25 '17 at 23:45