将多个背景图像文件添加到可部署项目中(代码片段)

author author     2022-12-29     722

关键词:

我看了,没有看到解决我问题的答案。我有一个使用随机文件作为背景图像的应用程序。我目前将这些图像存储在本地计算机上的文件夹中,然后遍历文件夹以将图像文件名加载到ArrayList中,该工作正常。但是,当我将应用程序部署到另一台计算机时,我需要一种方法来使其工作。

那么:1)有没有办法用Visual Studio Publish功能部署这些图像,或2)有没有办法将它们添加到项目的Resources区域,然后将它们添加到Array(List)或者遍历它们?我在资源列表中确实有其他文件(图标等),我不想包含这些文件。我可以使用一系列的IF语句来排除它们,但这感觉很糟糕:)你们所有人的想法都会非常感激。

我目前在本地计算机上使用的代码:

    ArrayList bgImageList = new ArrayList();

    bgImageList = myIO.ProcessDirectory(bgImageFilePath);

    DisplayBackgroundImage();
    private void DisplayBackgroundImage()
    
        Random rnd = new Random();
        int index = rnd.Next(0, bgImageList.Count);
        this.BackgroundImage = Image.FromFile((String)bgImageList[index]);
    

class FileIO

    // Note: I think I found this code on this site. I cannot recall the author's name 
    // but all credit goes to them. I did modify it to return the ArrayList.

    ArrayList myList = new ArrayList();

    public ArrayList ProcessDirectory(string targetDirectory)
    
        string[] fileEntries = Directory.GetFiles(targetDirectory);
        foreach (string fileName in fileEntries)
            ProcessFile(fileName);

        string[] subdirectoryEntries = Directory.GetDirectories(targetDirectory);
        foreach (string subdirectory in subdirectoryEntries)
            ProcessDirectory(subdirectory);

        return myList;
    

    private void ProcessFile(string path)
    
        myList.Add(path);
    

答案

您可以将图像添加到项目中,然后在属性中将Copy to output directory设置为Copy to if newer这应该足以使Publish功能包括文件

如果没有,您可以编辑.pubxml文件添加新目标

  <Target Name="CustomCollectFiles">
    <ItemGroup>
      <_CustomFiles Include="*.jpg" />
      <FilesForPackagingFromProject Include="%(_CustomFiles.Identity)">
        <DestinationRelativePath>Resources\%(Filename)%(Extension)</DestinationRelativePath>
      </FilesForPackagingFromProject>
    </ItemGroup>
  </Target>

并复制文件:

  <PropertyGroup>
    <CopyAllFilesToSingleFolderForPackageDependsOn>CustomCollectFiles;
      </CopyAllFilesToSingleFolderForPackageDependsOn>
    <CopyAllFilesToSingleFolderForMsdeployDependsOn>CustomCollectFiles;
      </CopyAllFilesToSingleFolderForMsdeployDependsOn>
  </PropertyGroup>

使用 CMake 将资源(例如,着色器代码;图像)嵌入到可执行文件/库中

】使用CMake将资源(例如,着色器代码;图像)嵌入到可执行文件/库中【英文标题】:Embedresources(eg,shadercode;images)intoexecutable/librarywithCMake【发布时间】:2012-08-0212:54:50【问题描述】:我正在用C++编写一个应用程序,它依赖于我... 查看详情

linux部署多个项目(1.一个tomcat多个项目2.多个tomcat,同时启动)(代码片段)

一,1个tomcat,多个项目直接将n个项目放在webapps下。然后配置数据源,在context.xml文件中添加相关信息。这样做有一定的弊端,如果项目存在主表大致上相似,会出现一些显示不全,界面异常的bug。  二,多个tomcat同时启... 查看详情

多个项目中的多文件项模板(代码片段)

我可以制作一个项目模板,将多个文件插入到同一解决方案下的不同项目中吗?我不打算在同一个项目中的不同文件夹下添加文件。这就是我要找的东西:解项目1模板项目1项目2模板项目2答案好的基于VS2017我创建了一个VSIX项目... 查看详情

markdown将背景图像添加到密码页面(代码片段)

查看详情

css将css渐变添加到背景图像(代码片段)

查看详情

使用 Eclipse 将 JavaFX 项目导出到可运行文件

...我正在使用Eclipse并在javaFX中制作一个简单的游戏。我有图像,需要将它们和javafx打包成一个可运行的文件。我没有使用任何与javafx相关的css东西,只是基本的窗口和阶段之类的东西。谢谢!我尝试将其导出,但它 查看详情

以编程方式在tablerow单元格中添加多个图像(代码片段)

我需要在单元格中添加多个图像......这是最简单的部分。我的问题是我不确定表格行内的缩略图照片的数量。像这样的东西:因此,如果我不知道每行的图像大小,我怀疑如果我在UITableViewAutomaticDimensiont中使用heightForRowAtIndexPath... 查看详情

电话间隙闪屏插件不显示图像

...显示确切的图像这是一个屏幕截图:我尝试将图像添加到多个来源(一次在主文件夹中,一次在www文件夹中,尝试将所有图像添加到可绘制文件夹,如果这是已知 查看详情

如何将背景图像添加到 XML 文件?

】如何将背景图像添加到XML文件?【英文标题】:HowdoIaddabackgroundimagetoanXMLfile?【发布时间】:2021-02-1506:03:29【问题描述】:如何在xml文件中插入背景图片?我想在我的APK(手机)中添加背景图片,我已经找到了xml文件,但我不... 查看详情

如何将背景图像添加到自适应卡片机器人框架

】如何将背景图像添加到自适应卡片机器人框架【英文标题】:HowtoaddBackgroundimagetoadaptivecardbotframework【发布时间】:2019-12-0211:49:20【问题描述】:我正在尝试将背景图片添加到自适应卡片中。目前我正在使用自适应卡版本1.2,... 查看详情

一个tomcat下如何部署多个项目?附详细步骤(代码片段)

一个tomcat下如何部署多个项目?Linux跟windows系统下的步骤都差不多,以下linux系统下部署为例。windows系统下部署同理。 一、不修改端口,部署多个项目清楚tomcat目录结构的应该都知道,项目包是放在webapps目录下的,那能否... 查看详情

在字典中存储多个图像文件(代码片段)

我在python方面相对缺乏经验,并且正在为学校项目编写射击游戏。我试图去除一些保存图像的变量:wavetransition=pygame.image.load("TransitionScreen.png")wavetransition=pygame.transform.scale(wavetransition,(WIDTH,HEIGHT))wavetransition2=pygame.image 查看详情

将多个 ImageView 项目添加到 Qt.Window 以在 python 的一个窗口中获取多个图像

】将多个ImageView项目添加到Qt.Window以在python的一个窗口中获取多个图像【英文标题】:AddmultipleImageViewitemstoanQt.Windowtogetseveralimageswithinonewindowinpython【发布时间】:2021-08-0819:03:33【问题描述】:如何在一个QWidget中显示多张图片?... 查看详情

如何将子项动态添加到可展开的列表视图中。?

】如何将子项动态添加到可展开的列表视图中。?【英文标题】:HowdoIaddchilditemsdynamicallytoanexpandablelistview.?【发布时间】:2013-02-2705:01:49【问题描述】:例如,我有一个编辑文本和一个按钮。当按下按钮时,文本被添加到我的可... 查看详情

Android - 将图像添加到项目

...用程序。此应用程序有一个按钮,可根据用户点击更改其背景图像。我注意到我的项目中有4个图片文件夹:drawable-hdpi,drawable-ldpi,drawable-mdpi,anddrawab 查看详情

将多个项目部署到单个应用服务中

】将多个项目部署到单个应用服务中【英文标题】:Deploymultipleprojectsintosingleappservice【发布时间】:2019-07-2723:56:08【问题描述】:我想将两个项目部署到azureDevOpsCI/CD中。我创建了一个管道它指向我在Azure门户中创建的一项应用服... 查看详情

如何将一行文本添加到目录中的多个文件(代码片段)

我需要在每个文件的开头(命令文本)中添加一行文本(不是所有文件)。有没有办法这样做?该行将类似IDDATENAME,其间有空格,例如:a1234520190418tarik(文件末尾名称中不包含.txt更像.abcd_1452a)答案您可以使用这样的脚本(文... 查看详情

部署前后端分离项目(代码片段)

...ows系统。它可以很方便的监听、启动、停止、重启一个或多个进程。用Supervisor管理的进程,当一个进程意外被杀死,supervisort监听到进程死后,会自动将它重新拉起,很方便的做到进程自动恢复的功能,不再需要自己写shell脚本... 查看详情