Попытка создать правила сборки для создания класса доступа к файлу resx

#visual-studio-2010 #class #build #c -cli #accessor

#visual-studio-2010 #класс #сборка #c -cli #средство доступа

Вопрос:

У меня есть файл resources.resx в моем проекте C / CLI, и я хочу создать сборку для автоматического создания класса доступа, чтобы помочь получить доступ к ресурсам, когда это необходимо. Я много искал, но пока не нашел достойного решения (используя vs2010).

Я могу создать класс доступа с помощью этого:

resgen /str: c resources.resx

Это создает файл resources.h (который я хочу) и файл resources.resources (который я могу удалить). Но я хотел бы, чтобы команда выполнялась всякий раз, когда я изменяю файл resources.resx, и это вызывает у меня некоторую головную боль, поскольку в файле уже есть цель сборки, «Компилятор управляемых ресурсов», и хотя он запускает resgen для этого файла, он включает в себя 7 других файлов ресурсов и не имеет /переключатель str.

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

Есть предложения?

Ответ №1:

Я решил проблему следующим образом. В событие предварительной сборки проекта я вставил это:

 resgen /str:c  ,myApp,resources,resources.h.new resources.resx myApp.resources.resources
del myApp.resources.resources
fc /b resources.h resources.h.new > NUL:
if NOT "%ERRORLEVEL%"=="0" ( type resources.h.new > resources.h )
del resources.h.new
  

По сути, я создаю новые ресурсы.h и сравните его с существующим файлом. Если есть какие-либо различия, я использую type для копирования файла, чтобы обновить временную метку. Это заставляет механизм сборки обновлять только ресурсы.h, когда это необходимо. Не очень, но он выполняет свою работу.