Необходимо встроить все внешние файлы в исполняемый файл и изменить свой код для работы с этими встроенными файлами, а не ожидать файлы на диске.
Чтобы использовать изображения или файлы, которые вам нужны («xml / txt / doc»), вам нужно установить для встроенного ресурса действие по сборке вашего файла и вызвать метод с полным именем файла, где имя собрано так:
[RootNameSpaceOfTheProject]. [NameOfFolderInTheProject]. [FileNameWithExtension]
Пример:
Вызовите метод:
var b = ResourceOperations.GetResourceAsByteArray ("Store.Resources.EmbeddedIcons.toolbox.png");
Теперь вы можете записать байтовый массив, например, во временный файл и использовать его в качестве источника изображения, или вы можете создать изображение из байтового массива напрямую. По крайней мере, у вас есть ваши данные ...
и чтобы сохранить эти файлы на диск, мы должны написать код @ Jon Skeet :
public static void CopyStream(Stream input, Stream output)
{
// Insert null checking here for production
byte[] buffer = new byte[8192];
int bytesRead;
while ((bytesRead = input.Read(buffer, 0, buffer.Length)) > 0)
{
output.Write(buffer, 0, bytesRead);
}
}
затем назовите это:
using (Stream input = assembly.GetManifestResourceStream(resourceName))
using (Stream output = File.Create(path))
{
CopyStream(input, output);
}