2011-12-12 2 views
2

В настоящее время у меня есть несколько проектов WPF, которым необходимо получить доступ к папке изображений. Каким будет лучший способ разрешить проектам иметь доступ к одной и той же папке изображений без дублирования?Лучший способ получить доступ к изображениям за пределами проекта?

Примерная структура:

  • корневой папки
    • Изображения
    • Проект 1
    • Проект 2
    • проекта 3

Я знаком с добавлением «необходимых» изображений к самому самому проекту, но я ищу решение для проектов иметь одну и ту же «центральную» библиотеку изображений.

+2

Почему бы не просто добавить их в проект из этого места и выберите «Всегда копировать [в выходной каталог]»? –

+2

Я не уверен, что это возможно с ресурсами, но попробовали ли вы добавить изображения в проект, используя опцию «Добавить как ссылку»? – Dror

+0

@ Ed S. - Я думал об этой идее, но разве это не создало бы дублирование? Если проект 1 и проект 2 хотят использовать image1, то не было бы двух изображений1, если бы я должен был добавить его отдельно в каждый проект, который ему нужен? –

ответ

3

Вы можете размещать все ваши изображения в центральном проекте и ссылаться на них через синтаксис пакета во всем своем решении.

ImageSource="pack://application:,,,/MyProject;component/Images/MyImage.png" 
+0

Какой тип «проекта» будет использоваться? после того, как проект будет выпущен, смогу ли я отключить изображение из/Images/(с тем же именем, что и существующее) с необходимостью сделать новую перестройку? –

+0

Вы можете использовать любой тип проекта (класс, WPF). Обычно у меня есть проект инфраструктуры, в котором для решения проблемы используются компоненты типа инфраструктуры. Вы не сможете отключать изображения, поскольку они вытаскивают их из скомпилированной библиотеки DLL. –

+0

спасибо, это подход, в котором я оказался. –

0

У вас может быть путь к этим изображениям в вашем приложении. Это позволит избежать копирования изображений в вашем проекте. Но если вы устанавливаете пакет, вам необходимо правильно их упаковать.

1

Если вы хотите уменьшить размер развернутой сборки и сохранить файлы изображений «свободными», вы можете рассмотреть схему «сайт происхождения». Это тот же формат, но использует «siteoforigin» для полномочий, а не для «приложения».

пакет: // siteoforigin: ,,,/подпапок/SiteOfOriginFile.jpg

+0

«свободные» файлы - это то, что я ищу. я не могу включить эти файлы в качестве «add-as-link», а затем установить сборку в «контент»? –

+0

Это зависит от стратегии развертывания.Элементы, помеченные как «контент», свободны, * НО * приложение знает о них во время компиляции и вставляет метаданные о них в сборку. Из-за этого вы можете просто использовать URI полномочий приложения, как и другие, которые предлагали здесь. Если вы хотите полностью потерять и не иметь никакого отношения к вашей сборке, то «сайт происхождения» - это путь. –

+0

спасибо Гарри. Эти изображения, как правило, будут использоваться в качестве значков gui. Есть ли способ поменять изображения и изменить изображение изображения без восстановления/компиляции? –

Смежные вопросы