Предотвращение сборки dll ресурса Silverlight - PullRequest
7 голосов
/ 18 февраля 2009

Когда вы создаете приложение silverlight, оно всегда выводит целую кучу библиотек ресурсов локализации в \bin\de\ \bin\es\ \bin\fr\ и т. Д. (Которые могут в конечном итоге быть упакованы в .xap). Это замечательно, но я не использую их, они не требуются для работы приложения, и они загромождают корень нашего сервера сборки TFS.

Я понимаю, что есть небольшая ошибка с TFS 2K8, которую легко исправить, чтобы гарантировать, что эти файлы не будут выгружены в корень сервера сборки, однако, в идеале, я бы хотел ПРЕДОТВРАТИТЬ эти файлы от их создания.

Я пробовал все под солнцем, чтобы остановить создание этих файлов. Поскольку они на самом деле не существуют до времени сборки, я не могу сказать им, чтобы они не выводили.

Я нашел тонны информации о локализации / глобализации, о том, как работают эти файлы, и о множестве способов манипулировать ими, но ничего о том, как их предотвратить, не было.

Кто-нибудь знает, как я могу остановить их появление в \ bin \ on build? Есть ли переключатель, который я могу использовать в опциях сборки или что-то подобное?

Изменить. Я хочу способ предотвратить это. Его можно очистить с помощью событий после сборки, но это далеко от идеала.

Ответы [ 4 ]

5 голосов
/ 25 августа 2011

Я ответил на это в другой теме StackOverflow: Языковые папки для проектов Silverlight при сборке с Team Build

Откройте проводник Windows. Перейдите в C: \ Program Files \ Microsoft SDKs \ Silverlight \ v4.0 \ Libraries \ Client. (C: \ Program Files (x86) \ Microsoft SDKs \ Silverlight \ v4.0 \ Libraries \ Client \, если вы используете 64-разрядную версию Windows). В этом месте вы увидите несколько папок с языками / культурами.

  • Создать новую папку. Я назвал мою "Неиспользуемые культуры".
  • Переместите все папки культур, которые вы не хотите использовать, в новая папка. Обязательно НЕ перемещайте папку «Дизайн», которая появляется в середине папок с культурами в списке папок.
  • В вашем проекте удалите содержимое корзины, релиза и т. Д. папки. Перестроить.
  • Если вы хотите добавить поддержку другой культуры, просто переместите тот, который вы хотите вернуться в исходное местоположение.

Всякий раз, когда вы получаете обновление для Silverlight SDK, вам, вероятно, придется делать это снова.

2 голосов
/ 21 октября 2009

Если вы посмотрите в эти папки после того, как соберете свой проект, то увидите в них кучу DLL-файлов и / или файлов ресурсов. DLL / ресурсы, которые вы видите в папке, являются тем, что вызывает создание самих папок. Поскольку вы ссылаетесь на эти библиотеки в своем проекте, при создании проекта ссылка извлекает эти файлы из папки SDK (или из тех источников, на которые они ссылаются).

Так, например, если вы посмотрите на файл System.Windows.Controls.dll, который будет установлен в папке% ProgramFiles% \ MicrosoftSDKs \ Silverlight \ v3.0 \ Libraries \ Client. В этой папке вы увидите те же папки, которые генерируются при сборке (de, fr, it и т. Д.). Поэтому, чтобы предотвратить их появление, вы можете сделать несколько вещей.

1) Скопируйте dll в отдельную папку и укажите этот файл. Мне пришлось на самом деле удалить DLL из папки SDK для ссылки для работы в VS 2010, не уверен, будет ли просто ссылка будет исправлена ​​в 2008 году.

2) Переименуйте или удалите глобальные папки и файлы из самого SDK. Это затронет все проекты, а не только ваш проект, но может решить проблему для вас.

Удачи!

1 голос
/ 19 февраля 2009

В событии после постройки:

rmdir /Q /S $(TargetDir)de
rmdir /Q /S $(TargetDir)fr
rmdir /Q /S $(TargetDir)it
rmdir /Q /S $(TargetDir)ja
rmdir /Q /S $(TargetDir)ko
rmdir /Q /S $(TargetDir)zh-Hans
rmdir /Q /S $(TargetDir)zh-Hant
rmdir /Q /S $(TargetDir)es
0 голосов
/ 18 февраля 2009

Как насчет использования шага после сборки, чтобы очистить то, что вам не нужно? Для этого: щелкните правой кнопкой мыши проект -> Свойства -> События сборки В пост-сборке вы можете использовать стандартные команды командной строки Windows.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...