Исключение файлов из сборки
В файле проекта можно использовать подстановочные знаки, чтобы включить все файлы из одного каталога или набора вложенных каталогов в качестве входных данных для сборки. Однако может присутствовать один файл в каталоге или один каталог в наборе вложенных каталогов, который не требуется включать в качестве входных данных для сборки. Этот файл или каталог можно явным образом исключить из списка входных данных. Кроме того, в проекте может быть файл, который требуется включить только при определенных условиях. Можно явно объявить условия, при которых файл включается в сборку.
Исключение файла или каталога из входных данных для сборки
Списки элементов являются входными файлами для сборки. Элементы, которые требуется включить, объявляются отдельно или в составе группы с помощью атрибута Include
. Например:
<CSFile Include="Form1.cs"/>
<CSFile Include ="File1.cs;File2.cs"/>
<CSFile Include="*.cs"/>
<JPGFile Include="Images\**\*.jpg"/>
Если вы использовали wild карта s для включения всех файлов в один каталог или вложенный набор каталогов в качестве входных данных для сборки, может быть один или несколько файлов в каталоге или одном каталоге в вложенном наборе каталогов, которые не хотите включать. Чтобы исключить элемент из списка элементов, используйте атрибут Exclude
.
Включение всех файлов с расширением CS или VB, кроме Form2
Используйте один из следующих атрибутов
Include
иExclude
:<CSFile Include="*.cs" Exclude="Form2.cs"/>
or
<VBFile Include="*.vb" Exclude="Form2.vb"/>
Включение всех файлов с расширением CS или VB, кроме Form2 и Form3
Используйте один из следующих атрибутов
Include
иExclude
:<CSFile Include="*.cs" Exclude="Form2.cs;Form3.cs"/>
or
<VBFile Include="*.vb" Exclude="Form2.vb;Form3.vb"/>
Включение всех JPG-файлов в подкаталогах каталога Images, кроме файлов из каталога Version2
Используйте следующие атрибуты
Include
иExclude
:<JPGFile Include="Images\**\*.jpg" Exclude = "Images\**\Version2\*.jpg"/>
Примечание.
Нужно указать путь для обоих атрибутов. Если вы используете абсолютный путь для указания расположения файлов в атрибуте
Include
, нужно использовать абсолютный путь и в атрибутеExclude
. Если же вы используете относительный путь в атрибутеInclude
, такой путь нужно использовать и в атрибутеExclude
.
Использование условий для исключения файла или каталога из входных данных для сборки
Если имеются элементы, которые требуется включить, например, в отладочную сборку, но не в сборку выпуска, можно использовать атрибут Condition
, чтобы указать условия для включения элемента.
Включение файла Formula.vb только в сборки выпуска
Используйте атрибута
Condition
по аналогии со следующей процедурой:<Compile Include="Formula.vb" Condition=" '$(Configuration)' == 'Release' " />
Пример
В следующем примере кода выполняется сборка проекта со всеми CS-файлами из каталога, кроме файла Form2.cs.
<Project DefaultTargets="Compile"
xmlns="http://schemas.microsoft.com/developer/msbuild/2003" >
<PropertyGroup>
<builtdir>built</builtdir>
</PropertyGroup>
<ItemGroup>
<CSFile Include="*.cs" Exclude="Form2.cs"/>
<Reference Include="System.dll"/>
<Reference Include="System.Data.dll"/>
<Reference Include="System.Drawing.dll"/>
<Reference Include="System.Windows.Forms.dll"/>
<Reference Include="System.XML.dll"/>
</ItemGroup>
<Target Name="PreBuild">
<Exec Command="if not exist $(builtdir) md $(builtdir)"/>
</Target>
<Target Name="Compile" DependsOnTargets="PreBuild">
<Csc Sources="@(CSFile)"
References="@(Reference)"
OutputAssembly="$(builtdir)\$(MSBuildProjectName).exe"
TargetType="exe" />
</Target>
</Project>
Связанный контент
Обратная связь
https://aka.ms/ContentUserFeedback.
Ожидается в ближайшее время: в течение 2024 года мы постепенно откажемся от GitHub Issues как механизма обратной связи для контента и заменим его новой системой обратной связи. Дополнительные сведения см. в разделеОтправить и просмотреть отзыв по