Независимо от того, какую конфигурацию я использую, я всегда вижу оба файла внутри проекта.
1. Как мы знаем, пользовательский интерфейс в обозревателе решений соответствует содержимому файла .xxproj. Поэтому, когда я пишу контент, как показано ниже:
<ItemGroup>
<Content Include="TextFile1.txt" />
</ItemGroup>
VS отобразит TextFile1.txt
в обозревателе решений, даже если файл на самом деле не существует.
![введите здесь описание изображения](https://i.stack.imgur.com/91ypA.png)
Поэтому, когда вы используете скрипт выше, он показывает оба файла.
2. И я думаю, что вас сильно смутило то, почему пользовательский интерфейс не включал файл в зависимости от конфигураций. Пожалуйста, взгляните на эту подобную проблему , я согласен с Андрей, что ItemGroup
тоже влияет, но такое поведение. (Условия не работают при загрузке проекта)
3. И, на мой взгляд, когда VS загружает файл проекта и отображает пользовательский интерфейс в обозревателе решений, он не может получить доступ к значению конфигурации из переключателя. Поле переключателя отключено и серое, когда мой проект выгружен, и если я щелкну проект правой кнопкой мыши, чтобы перезагрузить его, поскольку теперь поле переключателя отключено, условия о конфигурациях не могут работать должным образом во время загрузки.
![введите здесь описание изображения](https://i.stack.imgur.com/B1iXa.png)
Кроме того, я протестировал этот скрипт, теперь в обозревателе решений отображаются три файла:
<ItemGroup>
<Content Include="TextFile1.txt" Condition="$(RootNamespace)=='App'"/>
<Content Include="TextFile2.txt" Condition="$(RootNamespace)=='AppApp'"/>
<Content Include="TextFile3.txt" Condition="$(RootNamespace)=='AppAppApp'"/>
</ItemGroup>
Таким образом, очевидно, что условия игнорируются во время загрузки. И согласно примечанию в примечания, так задумано.
А поскольку условия в этой ситуации не работают, возможно, вам придется установить его свойство вручную в окне свойств. то есть: установите действие сборки Package.release.appxmanifest
как AppxManifest
, а действие сборки Package.debug.appxmanifest
None
во время настройки выпуска.
Надеюсь, это поможет, и если я что-то не так понял, не стесняйтесь меня поправлять :)
Обновление 1:
Найдите обсуждение на github и получите хороший совет от давкеан.
Новая система проектов в настоящее время выводит дерево решений из "активной" конфигурации. Старая система проектов управляет деревом решений, игнорируя условия. У обоих есть свои преимущества и недостатки.
person
LoLance
schedule
26.08.2019