Native App packaged via Packaging Project and distributed via Windows App Store.

Question:

Do you have a way to ship both the x64 and x86 dlls and have the
application decide which gets loaded? (I believe this is what SQLite
does). I’ve got a native app that is packaged via a ‘Packaging
Project’ and is then distributed via the Windows App store. Because of
this distribution method, I cannot ship two separate installers and I
can also not install anything to the GAC. This limits me to shipping
just 32 bit.

Answer:

I manually edited my .csproject and added the following:

<ItemGroup Condition=" '$(Platform)' == 'x86' ">
<Reference Include="ChilkatDotNet46, Version=9.5.0.84, Culture=neutral, PublicKeyToken=eb5fc1fc52ef09be, processorArchitecture=x86">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\libs\Chilkat\x86\ChilkatDotNet46.dll</HintPath>
</Reference>
</ItemGroup>

<ItemGroup Condition=" '$(Platform)' == 'x64' ">
<Reference Include="ChilkatDotNet46, Version=9.5.0.84, Culture=neutral, PublicKeyToken=eb5fc1fc52ef09be, processorArchitecture=x64">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\libs\Chilkat\x64\ChilkatDotNet46.dll</HintPath>
</Reference>
</ItemGroup>

So far this seems to be working fine – as long as I don’t use ‘Any CPU’ (which would probably work if I did the prefer x84, but I don’t want to confuse things further).

The packaging project for the app store generates a subfolder for x86 and x64 which each contains duplicate content for both x86/x64 except for the Chilkat.dll. It seems that this will do the trick!

Thanks again for the great libraries.