我创建了一种将上传的图像保存到项目资源文件夹的方法。图像已正确添加到我的资源文件夹,但我无法使用该图像,因为我无法设置构建操作。我在哪里可以存储上传的图片,哪个文件夹?我读到了bin目录,但这是一个好习惯吗?
资源是我项目下的一个文件夹。正如您在下面的屏幕截图中看到的,我无法设置上传图像的构建操作(beats_1.jpg)。
保存图像的代码
var path = string.Format(@"{0}\Resources\Images\{1}", Directory.GetParent(Directory.GetCurrentDirectory()).Parent.FullName, GiftImageFileName);
var resizedImage = GiftImage.CreateResizedImage(100, 100, 0);
var encoder = new PngBitmapEncoder();
encoder.Frames.Add(BitmapFrame.Create(resizedImage));
using (FileStream stream = new FileStream(path, FileMode.Create))
{
encoder.Save(stream);
}
答案 0 :(得分:0)
好的,所以我猜你要在构建之前执行这个过程,因此你的文件作为资源包含在编译输出中,你可以在编译后的可执行文件中引用它。
这有两种方法,一种是快速而肮脏,一种是更复杂和正确。
快速和脏:(这应该在未加载Visual Studio解决方案时执行)
通过C#代码中的XML修改库打开Project CSPROJ文件(例如,使用XDoc)。
以编程方式在<Project>
部分
<ItemGroup>
<Resource Include="Resources\Images\beats_1.png" />
<Resource Include="Resources\Images\beats_2.png" />
<Resource Include="Resources\Images\beats_n.png" />
</ItemGroup>
更复杂和正确: - 使用VSPackage visual studio插件修改当前加载的项目并添加新资源项。 - 见这里:How do I programmatically add a file to a Solution?