Я наконец нашел реальное решение этой проблемы. Мне нужно было добавить все файлы в данном внешнем каталоге (который не является частью проекта) в проект установки во время сборки, т. Е. Если файл добавлен в этот внешний каталог, он будет автоматически включен в установщик со следующей сборкой.
Я создал новый проект в решении (проект библиотеки классов) и удалил из него все: Class1.cs, AssemblyInfo.cs и соответствующие ItemGroups файла csproj, содержащие элементы <Compile>
для файлов. выше и <Reference>
элементов для включений.
Затем я добавил новую группу товаров:
<ItemGroup>
<Content Include="Path\To\The\Directory\**\*.*">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
</ItemGroup>
Таким образом, этот новый проект не содержит никаких файлов, но он ссылается на все файлы (рекурсивно, обозначенные \**\
из указанного каталога) как Файлы содержимого .
Таким образом, при сборке эти файлы обрабатываются как Файлы содержимого , поэтому копируются в выходной каталог нового проекта.
Итак, почему я сделал все вышеперечисленное? Просто потому, что в Setup Project есть опция для включения файлов содержимого из другого проекта!
Таким образом, таким образом вы можете сделать произвольные внешние файлы «частью» решения, фактически не перечисляя их, список файлов оценивается в время сборки , а затем ссылаться на них из проекта установки.