【发布时间】:2019-09-30 12:54:48
【问题描述】:
我正在使用 VS2017 用 C# 开发一个 UWP 项目。我现在需要在构建中添加大约 5000 个图像文件(jpg 和 png),以便将它们包含在 .appx 包中以供最终部署。
所以我已将文件添加到文件夹结构中的项目中,并将文件的所有属性设置为构建操作:内容,复制到输出目录:不要复制。
我现在发现,随着我继续开发和调试代码,项目构建时间增加了两倍,达到 30 秒,这让调试体验变得非常缓慢。
大概 VS 在构建过程中处理或检查我的图像文件,即使它们从未从一个构建更改为下一个构建。
在这种情况下,有什么方法可以减少构建时间?或者有什么方法可以只将这些文件包含在 Release 构建中而不是 Debug 构建中?
【问题讨论】:
-
5000 张图片?为什么不将它们全部放在一个 api 上以按需访问/下载它们并将它们完全从项目中删除?这样,即使您的部署文件也会小很多。我很确定您不会总是使用所有 5000 张图像。只是一个建议
-
是的。过去是这样,但客户的要求发生了变化。实际上,这样做使最终用户的“开箱即用”安装变得更加容易,并且无需互联网连接,因此可以在 USB 记忆棒上提供。它只是让我的工作效率急剧下降。
-
由于您的包中有 5000 个图像,因此您无法缩短构建时间。但是您可以在它的 itemsgroup 中创建两个具有不同设置的 csproj,然后当您选择构建它时它们将具有不同的行为。也许使用 msbuild 命令行,您可以根据不同的条件创建不同的构建。但是我对msbuild不太熟悉。无论如何,两个 csproj 看起来很适合你,这有帮助吗?
-
谢谢巴里。是的,这可能会有所帮助,我会进行调查。但是我认为这更多的是一种解决方法,而不是解决方案。所以,因为你说在这种情况下不可能改进构建时间,那么(如果你同意的话)我会提供这个作为我问题的答案。
-
值得一提的是,自从发布此问题以来,我已将 5000 张图像打包到一个 zip 文件中,并将其添加到项目中,而不是包含单个图像。这导致构建时间减少到更可接受的 8 秒。所以我恢复了我的生产力!但这又是另一种解决方法。这也意味着安装后,在第一次运行时,我的应用程序必须将所有图像解压缩到 LocalCache。我意识到这意味着复制磁盘空间要求,但它似乎运行良好,并且在卸载应用程序时所有这些都被删除。
标签: performance deployment build uwp compilation