У меня есть решение C # с VS 2017, содержащее проект приложения, проект расширения рабочего стола и проект упаковки. Как я уже упоминал в ответе на этот вопрос , я наконец-то получил msbuild для создания одного пакета с x86 и x64 для меня. Однако после того, как я попытался установить из этого пакета, я обнаружил, что msbuild фактически выбрал неправильный package.appxmanifest, потому что у них разные номера версий.
Итак ... У меня есть два package.appxmanifest, один в проекте упаковки и один в моем основном проекте приложения. Когда я собираюсь из мастера в VS 2017, будет использоваться тот, который находится в проекте упаковки, и это правильно. Когда я использую msbuild для сборки только с одной платформой, она также выберет правильную, например:
msbuild .\MyApp.sln /p:Configuration=Release /p:Platform=x86
Только когда я использую msbuild для сборки двух платформ, она будет использовать ту, что в моем основном проекте приложения:
msbuild .\MyApp.sln /p:Configuration=Release /p:AppxBundlePlatforms="x86|x64" /p:UapAppxPackageBuildMode=StoreUpload
Я также попытался построить проект упаковки вместо решения, но поскольку наш проект расширения рабочего стола - только x86, при сборке x64 я получу ошибки о конфигурации.
Вопросы:
- Кто-нибудь знает, почему это происходит?
- Я также очень озадачен тем, как создавать мультиплатформенность с использованием AppxBundlePlatforms в командной строке. Поскольку я не могу указать платформу, какая платформа используется для сборки?
- Должен ли я добавить
<AppxBundle>Always</AppxBundle>
или <AppxBundle>Never</AppxBundle>
в проект упаковки?