В пространстве «инфраструктура как код» существует множество опций: CDK, CloudFormation, Terraform, Troposphere, Chalice, Serverless и другие.
Одно мнение см. В Формирование безсерверных облаков с помощью AWS: CloudFormation, SAM, CDK, Amplify .
Вам не нужно добавлять изображения в папку "Ресурсы". Вы можете добавить изображения в любую папку, которую хотите, а затем установить действие сборки для изображений на «Встроенный ресурс». Таким образом они будут скомпилированы в сборку как ресурсы. Я не знаю, возникают ли проблемы с производительностью при большом количестве изображений ...
Обновление: подробнее:
Это приведет к компиляции файлов изображений в сборку как ресурсов. Каждому файлу будет присвоено имя ресурса в соответствии с этим шаблоном: <корневое пространство имен для сборки>. <Имя папки>. <Имя файла изображения>
. Вы можете загрузить изображение с помощью этого кода:
using(Stream stream = Assembly.GetExecutingAssembly().GetManifestResourceStream("<root namespace for the assembly>.<folder name>.<image file name>"))
{
pictureBox1.Image = Image.FromStream(stream);
}
Создайте новый файл ресурсов (в следующем примере я назвал его Images01 в папке resx) Создайте собственный класс диспетчера ресурсов и инициализируйте его так, чтобы он указывал на только что созданный файл
ResourceManager rm = new ResourceManager("ROOTNAMESPACE.resx.Images01",
System.Reflection.Assembly.GetExecutingAssembly());
Реализуйте метод в GetImage
public static Image GetImage(string fileName)
{
Stream stream = GetResourceStream(fileName);
Image image = null;
if (stream != null)
{
image = Image.FromStream(stream);
}
return image;
}
Добавьте изображения в этот файл resx
И затем вы можете использовать его в своем коде следующим образом
this.picProject.Image = Resources.GetImage("ImageName.png");
Надеюсь, это поможет