| Nemerle. Как добавить ресурсы в проект? | |
| От: | konsoletyper | ||
| Дата: | 10.01.07 08:10 |
Собственно, сабж. Пытаюсь в nproj по аналогии с csproj засунуть EmbeddedResource внутрь элемента ItemGroup. Но msbuild ругается:
Проектов на Nemerle с ресурсами не видел, так что не знаю, как это правильно делается. И документации нет. ... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
30.01.07 18:01: Перенесено модератором из 'Декларативное программирование' — IT |
| Re: Nemerle. Как добавить ресурсы в проект? | |
| От: | VladD2 модератор | ||
| Дата: | 10.01.07 09:28 | ||
| Оценка: | ![]() | ||
| Здравствуйте, konsoletyper, Вы писали: K>Собственно, сабж. Пытаюсь в nproj по аналогии с csproj засунуть EmbeddedResource внутрь элемента ItemGroup. Пока что сделай такой трюк... 1. Сделай (на всякий пожарный) бэкап-копию проекта. 2. Преименуй проект из *.nproj в *.csproj. 3. Открой его судией как обычный C#-проект. 4. Добавиь ресурсы. 5. Переименуй проект обратно в *.nproj. Сам не пробовал, но теоритически должно сработать. Это же должно сработать и для многих других настроек. ЗЫ А вообще, многие вещи просто еще не доделаны или не оттестированы. ... << RSDN@Home 1.2.0 alpha rev. 637>> |
| Re[2]: Nemerle. Как добавить ресурсы в проект? | |
| От: | konsoletyper | ||
| Дата: | 10.01.07 10:21 |
| Здравствуйте, VladD2, Вы писали: K>>Собственно, сабж. Пытаюсь в nproj по аналогии с csproj засунуть EmbeddedResource внутрь элемента ItemGroup. VD>Пока что сделай такой трюк... VD>1. Сделай (на всякий пожарный) бэкап-копию проекта. VD>2. Преименуй проект из *.nproj в *.csproj. VD>3. Открой его судией как обычный C#-проект. VD>4. Добавиь ресурсы. VD>5. Переименуй проект обратно в *.nproj. Не, интеграцию я пока не использую. Писал (не я) .nproj-файл ручками, потом пытались (я и товарищ) его править и так и сяк. Файл был написан при помощи copy-paste из имеющихся .nproj и .csproj. Глюк именно в msbuild. Если никто ничего не знает, то надо бы написать на nemerle.org. Кстати, интеграция спокойно открыла .csproj и тут же обнаружила файлы, подключённые как embedded resource. Но сбилдить проект не удалось: опять то же сообщение. Тогда я ручками удалил EmbeddedResource, опять открыл проект. Файлы, естественно, не появились. Когда же я их добавил из VS, в элементе ItemGroup опять оказался тот же самый EmbeddedResource, естественно, не сбилдился. VD>А вообще, многие вещи просто еще не доделаны или не оттестированы. Да, есть одна мегавещь, из-за которой я не пользуюсь интеграцией. А именно, глючат референсы между проектами. Причём это отражается не только в том, что информация о типах и т.д. не берётся из проектов, на которые есть ссылка, а даже сборка не хочет билдится с соответствующим сообщением. ... << RSDN@Home 1.1.4 stable SR1 rev. 568>> |
| Re[2]: Nemerle. Как добавить ресурсы в проект? | |
| От: | VladD2 модератор | ||
| Дата: | 10.01.07 11:00 |
| Можно вопрос Лойду? Спасибо. А что смешоного в моих словах? |
| Re[3]: Nemerle. Как добавить ресурсы в проект? | |
| От: | VladD2 модератор | ||
| Дата: | 10.01.07 11:10 |
| Здравствуйте, konsoletyper, Вы писали: K>Не, интеграцию я пока не использую. Писал (не я) .nproj-файл ручками, потом пытались (я и товарищ) его править и так и сяк. Файл был написан при помощи copy-paste из имеющихся .nproj и .csproj. Глюк именно в msbuild. Если никто ничего не знает, то надо бы написать на nemerle.org. K>Кстати, интеграция спокойно открыла .csproj и тут же обнаружила файлы, подключённые как embedded resource. Но сбилдить проект не удалось: опять то же сообщение. Тогда я ручками удалил EmbeddedResource, опять открыл проект. Файлы, естественно, не появились. Когда же я их добавил из VS, в элементе ItemGroup опять оказался тот же самый EmbeddedResource, естественно, не сбилдился. Странно. Ну, может действительно что-то в компиляторе. K>Да, есть одна мегавещь, из-за которой я не пользуюсь интеграцией. А именно, глючат референсы между проектами. Причём это отражается не только в том, что информация о типах и т.д. не берётся из проектов, на которые есть ссылка, а даже сборка не хочет билдится с соответствующим сообщением. Упрощаенная должна работать. ... << RSDN@Home 1.2.0 alpha rev. 637>> |
| Re[3]: Nemerle. Как добавить ресурсы в проект? | |
| От: | Lloyd | ||
| Дата: | 10.01.07 11:23 |
| Здравствуйте, VladD2, Вы писали: VD>Можно вопрос Лойду? Спасибо. VD>А что смешоного в моих словах? Да ничего личного. Просто улыбнуло. ... << RSDN@Home 1.1.4 stable SR1 rev. 568>> |
| Re[4]: Nemerle. Как добавить ресурсы в проект? | |
| От: | mаrvin | ||
| Дата: | 10.01.07 11:26 | ||
| Оценка: | 10 (1) | ||
| Здравствуйте, VladD2, Вы писали: VD>Странно. Ну, может действительно что-то в компиляторе. У меня такая вот гипотеза. Это не глюк, а правильная работа. Target'у _CopyNonResxEmbeddedResources, из-за которого выпадает ошибка, но вход нужен атрибут DestinationFiles, который определяется так: (Microsoft.Common.targets)
Соответственно, ему нужен определенное свойство ManifestNonResxWithNoCulture. Которое и является Output'ом для вот этого: (Nemerle.MSBuild.targets)
Сейчас это закомментировано. Похоже, просто не реализован нужный класс. Так понимаю, который должен быть производным от CreateManifestResourceName из Microsoft.Build.Tasks. Поправьте, если что не так. ... << RSDN@Home 1.2.0 alpha rev. 667>> |
| Re[4]: Nemerle. Как добавить ресурсы в проект? | |
| От: | VladD2 модератор | ||
| Дата: | 10.01.07 11:28 |
| Здравствуйте, Lloyd, Вы писали: L>Да ничего личного. Просто улыбнуло. Что? Что в альфе не реализована некоторая функциональность? ... << RSDN@Home 1.2.0 alpha rev. 637>> |
| Re[5]: Nemerle. Как добавить ресурсы в проект? | |
| От: | mаrvin | ||
| Дата: | 10.01.07 13:47 |
| M>У меня такая вот гипотеза. Гипотеза подтвердилась. В своём сообщении, кстати, перепутал термины -- то, что внутри Target это Task. Самый очевидный и простой workaround -- использовать Task CreateCSharpManifestResourceName из Microsoft.Build.Tasks: (Nemerle.MSBuild.targets)
И затем использовать CreateCSharpManifestResourceName вместо CreateNemerleManifestResourceName. У меня работает. Однако есть одно но. У ресурсов получаются имена не rootNamespace.<resourceFileName>, а obj.Any.<resourceFileName>. Иожет быть, это можно исправить? Вполне возможно, просто нужно дописать что-нибудь в конфиге. ... << RSDN@Home 1.2.0 alpha rev. 667>> |
| Re[6]: Nemerle. Как добавить ресурсы в проект? | |
| От: | konsoletyper | ||
| Дата: | 10.01.07 18:56 |
| Здравствуйте, mаrvin, Вы писали: M>Гипотеза подтвердилась. [skip] M>Однако есть одно но. У ресурсов получаются имена не M>rootNamespace.<resourceFileName>, а obj.Any.<resourceFileName>. Это серьёзный недостаток. Ведь если делать Debug-сборку, будет obj.Debug.<resourceFileName>, а если Release — obj.Release. Это напрягает. Ну нет у меня щас времени рыться в тонкостях msbuild. Проще по старинке юзать shell или nmake, пока немерлисты не залатают дырку. Кстати, кто бы им сообщил о такой недоработке? Лично у меня плохо с тем, чтобы что-то написать по-английски (к моему стыду). ... << RSDN@Home 1.1.4 stable SR1 rev. 568>> |
| Re[7]: Nemerle. Как добавить ресурсы в проект? | |
| От: | mаrvin | ||
| Дата: | 11.01.07 01:53 |
| Здравствуйте, konsoletyper, Вы писали: K>Это серьёзный недостаток. Ведь если делать Debug-сборку, будет obj.Debug.<resourceFileName>, а если Release — obj.Release. Это напрягает. Закрою эту тему. Дело действительно в компиляторе. Префиксы obj.<...> взяты из названий папки, в которую копируются ресурсы. Дело, получается, не в MSBuild, так как компиляторы ncc и cs на вход получают одно и то же. Просто cs каким-то образом убирает ненужные пути obj\...\ из пути к ресурсам. А ncc этого не умеет. А неймспейса не было, так как я забыл указать его в проекте. ... << RSDN@Home 1.2.0 alpha rev. 667>> |
| Re[8]: Nemerle. Как добавить ресурсы в проект? | |
| От: | VladD2 модератор | ||
| Дата: | 11.01.07 06:03 |
| Здравствуйте, mаrvin, Вы писали: M>Закрою эту тему. Дело действительно в компиляторе. M>Префиксы obj.<...> взяты из названий папки, в которую M>копируются ресурсы. Дело, получается, не в MSBuild, так как M>компиляторы ncc и cs на вход получают одно и то же. Просто cs каким-то M>образом убирает ненужные пути obj\...\ из пути к ресурсам. А ncc M>этого не умеет. M>А неймспейса не было, так как я забыл указать его в проекте. Тогда добавьте отчет о баге в багтрекер. ... << RSDN@Home 1.2.0 alpha rev. 637>> |
| Re[9]: Nemerle. Как добавить ресурсы в проект? | |
| От: | _nn_ | ||
| Дата: | 09.02.10 17:13 |
| Здравствуйте, VladD2, Вы писали: VD>Здравствуйте, mаrvin, Вы писали: M>>Закрою эту тему. Дело действительно в компиляторе. M>>Префиксы obj.<...> взяты из названий папки, в которую M>>копируются ресурсы. Дело, получается, не в MSBuild, так как M>>компиляторы ncc и cs на вход получают одно и то же. Просто cs каким-то M>>образом убирает ненужные пути obj\...\ из пути к ресурсам. А ncc M>>этого не умеет. M>>А неймспейса не было, так как я забыл указать его в проекте. VD>Тогда добавьте отчет о баге в багтрекер. Эти изменения вошли в SVN уже ? Я все еще получаю ошибку
|
| Re[10]: Nemerle. Как добавить ресурсы в проект? | |
| От: | VladD2 модератор | ||
| Дата: | 09.02.10 17:33 |
| Здравствуйте, _nn_, Вы писали: VD>>Тогда добавьте отчет о баге в багтрекер. __>Эти изменения вошли в SVN уже ? __>Я все еще получаю ошибку __>
__> Мое сообщение было 2007-го года. Если что-то не работает сейчас, то лучше описать проблему отдельно и полностью. |
| Re[11]: Nemerle. Как добавить ресурсы в проект? | |
| От: | _nn_ | ||
| Дата: | 10.02.10 09:10 |
| Здравствуйте, VladD2, Вы писали: VD>Если что-то не работает сейчас, то лучше описать проблему отдельно и полностью. Хорошо. Пытаюсь скомпилировать Snippet addin:
Если закомментировать EmbeddedResource то компилирует. |
| Re[12]: Nemerle. Как добавить ресурсы в проект? | |
| От: | seregaa | ||
| Дата: | 10.02.10 09:18 |
| Здравствуйте, _nn_, Вы писали: __>Пытаюсь скомпилировать Snippet addin: __>
Попробуй компилировать с помощью msbuild от фреймворка версии 3.5 Интеграция по моему уже давно поддерживает только 2008-ую студию, поэтому и скрипты сборки расчитаны на инструменты от .net 3.5 |
| Re[13]: Nemerle. Как добавить ресурсы в проект? | |
| От: | _nn_ | ||
| Дата: | 10.02.10 09:23 |
| Здравствуйте, seregaa, Вы писали: S>Здравствуйте, _nn_, Вы писали: __>>Пытаюсь скомпилировать Snippet addin: __>>
S>Попробуй компилировать с помощью msbuild от фреймворка версии 3.5 Интеграция по моему уже давно поддерживает только 2008-ую студию, поэтому и скрипты сборки расчитаны на инструменты от .net 3.5 Да тут разницы никакой:
|
| Re[12]: Nemerle. Как добавить ресурсы в проект? | |
| От: | VladD2 модератор | ||
| Дата: | 10.02.10 10:17 |
| Здравствуйте, _nn_, Вы писали: __>Хорошо. __>Пытаюсь скомпилировать Snippet addin: __>
Винда у тебя 64-битная? И еще. Я не могу даже попробовать это дело собрать так как нет зависимых сборок. Где их брать? И вообще, надо залить их в СВН. А то из-за этой копирастии проекты собрать невозможно. |
| Re[13]: Nemerle. Как добавить ресурсы в проект? | |
| От: | _nn_ | ||
| Дата: | 10.02.10 10:25 |
| Здравствуйте, VladD2, Вы писали: VD>Здравствуйте, _nn_, Вы писали: __>>Хорошо. __>>Пытаюсь скомпилировать Snippet addin: __>>
VD>Винда у тебя 64-битная? Нет. У меня Windows 7 x86. VD>И еще. Я не могу даже попробовать это дело собрать так как нет зависимых сборок. VD>Где их брать? Вы про http://rsdn.ru/forum/prj.nemerle/3570589.1.aspx Автор: _nn_ ?Дата: 15.10.09 VD>И вообще, надо залить их в СВН. А то из-за этой копирастии проекты собрать невозможно. У меня нет прав на коммит. Скачайте SnippetCompiler и залейте в SVN. Можно заодно и Reflector или Reflector Beta. Надо толкько проверить как там с лицензией, может нужно качать отдельно, а не класть в SVN.. |