В Visual Studio, как я могу установить действие сборки для всей папки?
У меня есть проект в Visual Studio. Мне нужно развернуть некоторые сторонние файлы вместе с моим кодом. Обычно я помещал эти файлы в каталог "Ресурсы" и устанавливал действие сборки для каждого файла в "Контент" и "Копировать в выходной каталог" "Копировать, если новый".
В любом случае я могу установить эти директивы на уровне папок. В текущем проекте, с которым я работаю, есть десятки таких файлов и несколько подпапок. Я хотел бы иметь возможность сделать весь каталог "Контент" и "Копировать, если новый".
Ответы
Ответ 1
Создайте проект. Добавьте один файл в качестве Контента. Выгрузите проект и отредактируйте файл * proj вручную.
<ItemGroup>
<Content Include="myfolder**\*.dll**">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
</ItemGroup>
И затем в Content-ItemGroup я заменил бы этот файл с некоторым выражением подстановки MsBuild, *.dll и т.д.
Ответ 2
Если вам требуется установить Build Action для всей папки, лучшим вариантом является просто открыть файл .csproj и использовать регулярное выражение, чтобы заменить все вхождения из
<Content ....
к
<None ...
Это отлично сработало для меня.
Ответ 3
Я использую Visual Studio 2012, и вы можете щелкнуть мышью, чтобы выбрать несколько элементов в обозревателе решений, а затем отредактировать каждый элемент "Копировать в каталог вывода" сразу в окне "Свойства".
Конечно, это не эквивалентно решению, которое вы ищете функционально, но семантически оно есть. И, надеюсь, следующий человек, который наткнется на этот пост с помощью огромной папки для исправления (как и со мной), не должен погружаться в файл .csproj.
Надеюсь, это поможет!
Ответ 4
Отредактируйте файл *.csproj или .vbproj
Добавьте этот тег
<ItemGroup>
<Folder Include="YOUR_FOLDER_NAME_HERE/">
</ItemGroup
окончательный файл должен выглядеть так:
<Project>
<---some more tags--->
<ItemGroup>
<Folder Include="YOUR_FOLDER_NAME_HERE\" />
</ItemGroup
<---some more tags--->
</Project>