Собственно, сабж. Пытаюсь в nproj по аналогии с csproj засунуть EmbeddedResource внутрь элемента ItemGroup. Но msbuild ругается:
Target _CopyNonResxEmbeddedResources:
C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Microsoft.Common.targets(1535,9): error MSB3023: No destination specified for Copy. Please supply either "DestinationFiles" or "DestinationDirectory".
Проектов на Nemerle с ресурсами не видел, так что не знаю, как это правильно делается. И документации нет.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
30.01.07 18:01: Перенесено модератором из 'Декларативное программирование' — IT
Здравствуйте, konsoletyper, Вы писали:
K>Собственно, сабж. Пытаюсь в nproj по аналогии с csproj засунуть EmbeddedResource внутрь элемента ItemGroup.
Пока что сделай такой трюк...
1. Сделай (на всякий пожарный) бэкап-копию проекта.
2. Преименуй проект из *.nproj в *.csproj.
3. Открой его судией как обычный C#-проект.
4. Добавиь ресурсы.
5. Переименуй проект обратно в *.nproj.
Сам не пробовал, но теоритически должно сработать. Это же должно сработать и для многих других настроек.
ЗЫ
А вообще, многие вещи просто еще не доделаны или не оттестированы.
... << RSDN@Home 1.2.0 alpha rev. 637>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Здравствуйте, 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>А вообще, многие вещи просто еще не доделаны или не оттестированы.
Да, есть одна мегавещь, из-за которой я не пользуюсь интеграцией. А именно, глючат референсы между проектами. Причём это отражается не только в том, что информация о типах и т.д. не берётся из проектов, на которые есть ссылка, а даже сборка не хочет билдится с соответствующим сообщением.
Здравствуйте, 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>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Здравствуйте, VladD2, Вы писали:
VD>Странно. Ну, может действительно что-то в компиляторе.
У меня такая вот гипотеза.
Это не глюк, а правильная работа. Target'у
_CopyNonResxEmbeddedResources, из-за которого выпадает ошибка, но вход
нужен атрибут DestinationFiles, который определяется так:
Сейчас это закомментировано. Похоже, просто не реализован нужный класс. Так понимаю, который должен быть производным от CreateManifestResourceName из Microsoft.Build.Tasks.
Здравствуйте, mаrvin, Вы писали:
M>Гипотеза подтвердилась.
[skip]
M>Однако есть одно но. У ресурсов получаются имена не M>rootNamespace.<resourceFileName>, а obj.Any.<resourceFileName>.
Это серьёзный недостаток. Ведь если делать Debug-сборку, будет obj.Debug.<resourceFileName>, а если Release — obj.Release. Это напрягает.
Ну нет у меня щас времени рыться в тонкостях msbuild. Проще по старинке юзать shell или nmake, пока немерлисты не залатают дырку. Кстати, кто бы им сообщил о такой недоработке? Лично у меня плохо с тем, чтобы что-то написать по-английски (к моему стыду).
Здравствуйте, konsoletyper, Вы писали:
K>Это серьёзный недостаток. Ведь если делать Debug-сборку, будет obj.Debug.<resourceFileName>, а если Release — obj.Release. Это напрягает.
Закрою эту тему. Дело действительно в компиляторе.
Префиксы obj.<...> взяты из названий папки, в которую
копируются ресурсы. Дело, получается, не в MSBuild, так как
компиляторы ncc и cs на вход получают одно и то же. Просто cs каким-то
образом убирает ненужные пути obj\...\ из пути к ресурсам. А ncc
этого не умеет.
А неймспейса не было, так как я забыл указать его в проекте.
Здравствуйте, mаrvin, Вы писали:
M>Закрою эту тему. Дело действительно в компиляторе.
M>Префиксы obj.<...> взяты из названий папки, в которую M>копируются ресурсы. Дело, получается, не в MSBuild, так как M>компиляторы ncc и cs на вход получают одно и то же. Просто cs каким-то M>образом убирает ненужные пути obj\...\ из пути к ресурсам. А ncc M>этого не умеет.
M>А неймспейса не было, так как я забыл указать его в проекте.
Тогда добавьте отчет о баге в багтрекер.
... << RSDN@Home 1.2.0 alpha rev. 637>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Здравствуйте, VladD2, Вы писали:
VD>Здравствуйте, mаrvin, Вы писали:
M>>Закрою эту тему. Дело действительно в компиляторе.
M>>Префиксы obj.<...> взяты из названий папки, в которую M>>копируются ресурсы. Дело, получается, не в MSBuild, так как M>>компиляторы ncc и cs на вход получают одно и то же. Просто cs каким-то M>>образом убирает ненужные пути obj\...\ из пути к ресурсам. А ncc M>>этого не умеет.
M>>А неймспейса не было, так как я забыл указать его в проекте.
VD>Тогда добавьте отчет о баге в багтрекер.
Эти изменения вошли в SVN уже ?
Я все еще получаю ошибку
Target _CopyNonResxEmbeddedResources:
C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Microsoft.Common.targets(1535,9): error MSB3023: No destination specified for Copy. Please supply either "DestinationFiles" or "DestinationDirectory".
Здравствуйте, _nn_, Вы писали:
VD>>Тогда добавьте отчет о баге в багтрекер.
__>Эти изменения вошли в SVN уже ? __>Я все еще получаю ошибку __>
__>Target _CopyNonResxEmbeddedResources:
__> C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Microsoft.Common.targets(1535,9): error MSB3023: No destination specified for Copy. Please supply either "DestinationFiles" or "DestinationDirectory".
__>
__>
Мое сообщение было 2007-го года.
Если что-то не работает сейчас, то лучше описать проблему отдельно и полностью.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Target CreateManifestResourceNames:
C:\Program Files\Nemerle\Nemerle.MSBuild.targets(44,13): error MSB4067: The element <_Temporary> beneath element <ItemGroup> is unrecognized.
Done building target "CreateManifestResourceNames" in project "snippetcompiler-addin.nproj" -- FAILED.
Done building project "snippetcompiler-addin.nproj" -- FAILED.
Build FAILED.
C:\Program Files\Nemerle\Nemerle.MSBuild.targets(44,13): error MSB4067: The element <_Temporary> beneath element <ItemGroup> is unrecognized.
1 Warning(s)
1 Error(s)
Time Elapsed 00:00:00.10
Если закомментировать EmbeddedResource то компилирует.
Попробуй компилировать с помощью msbuild от фреймворка версии 3.5 Интеграция по моему уже давно поддерживает только 2008-ую студию, поэтому и скрипты сборки расчитаны на инструменты от .net 3.5
S>Попробуй компилировать с помощью msbuild от фреймворка версии 3.5 Интеграция по моему уже давно поддерживает только 2008-ую студию, поэтому и скрипты сборки расчитаны на инструменты от .net 3.5
VD>И вообще, надо залить их в СВН. А то из-за этой копирастии проекты собрать невозможно.
У меня нет прав на коммит.
Скачайте SnippetCompiler и залейте в SVN.
Можно заодно и Reflector или Reflector Beta.
Надо толкько проверить как там с лицензией, может нужно качать отдельно, а не класть в SVN..