Протокол буферизует в проектах C# с помощью protobuf-сети - лучшие практики для генерации кода

Дайте этой команде для экспорта вашей базы данных, это также будет включать дату

mysqldump -u[username] -p[userpassword] --databases yourdatabase | gzip > /home/pi/database_backup/database_`date '+%m-%d-%Y'`.sql.gz

(без пробела после -p)

16
задан Marc Gravell 18 January 2009 в 17:24
поделиться

4 ответа

В качестве расширения кода Шона я рад сообщить, что теперь protobuf-net интегрируется с Visual Studio с помощью специального инструмента. Установщик msi доступен на странице проекта . Более полная информация здесь: protobuf-net; теперь с добавлением Orcas .

Visual Studio with protobuf-net as a Custom Tool

8
ответ дан 30 November 2019 в 16:58
поделиться

Вызов шага перед сборкой, но использование переменных проекта (например, $(ProjectPath)) для создания абсолютных имен файлов, не имея их на самом деле в решении казался бы разумной ставкой мне.

Одна вещь Вы могли бы хотеть рассмотреть, на основе моего прошлого опыта генераторов кода: Вы могли бы хотеть записать обертку для protogen, который генерирует код к различному местоположению, затем проверяет, совпадает ли недавно сгенерированный код со старым кодом и не перезаписывает его раз так. Тем путем Visual Studio поймет, что ничто не изменяется, и не вынуждают тот проект быть восстановленным - это сократило время изготовления существенно для меня в прошлом.

, С другой стороны, Вы могли сохранить md5 хеш .proto файла, прошлый раз protogen выполнялся, и только выполните protogen, если .proto файл изменился - еще меньше, чтобы сделать на каждой сборке!

спасибо за повышение этого как вопрос, хотя - это ясно предлагает, чтобы я разработал способ сделать это легким шагом перед сборкой для моего собственного порта.

8
ответ дан 30 November 2019 в 16:58
поделиться

ну, это дало мне идею (кое-что о изобретении колеса) ...

  • создать простой Makefile.mak, что-то вроде
.SUFFIXES : .cs .proto

.proto.cs:
    protogen\protogen.exe -i:$? -o:$@ -t:protogen\csharp.xlst

(очевидно, не забудьте заменить пути к protogen и csharp.xlst). ВАЖНО - команда protogen \ protogen.exe, начинающаяся с символа TAB, а не с 8 пробелов

  • Если вы не хотите указывать файлы, которые необходимо собирать все время, вы можете использовать что-то вроде
.SUFFIXES : .cs .proto

all: mycs1.cs myotherfile.cs

.proto.cs:
    protogen\protogen.exe -i:$? -o:$@ -t:protogen\csharp.xlst
  • в pre- шаг сборки, чтобы добавить
cd $(ProjectDir) && "$(DevEnvDir)..\..\vc\bin\nmake" /NOLOGO -c -f Makefile.mak mycs1.cs myotherfile.cs

или, если у вас есть nmake на вашем пути, можно использовать

cd $(ProjectDir) && nmake /NOLOGO -c -f Makefile.mak mycs1.cs myotherfile.cs
5
ответ дан 30 November 2019 в 16:58
поделиться

Я прикрепил быструю и грязную оболочку пользовательского инструмента Visual Studio вокруг ProtoGen.exe к странице кода Google для решения этой проблемы ( http://code.google.com/p/ protobuf-net / issues / detail? id = 39 ). Это упрощает добавление файлов .proto в проекты C #.

Дополнительную информацию см. В файле readme во вложении.

2
ответ дан 30 November 2019 в 16:58
поделиться
Другие вопросы по тегам:

Похожие вопросы: