Работа с XSLT в Visual Studio

Пока два операнда являются строками, нет никакой разницы между использованием оператора + и метода String.Concat. Код с использованием оператора + фактически компилируется в вызов String.Concat.

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

8
задан dthrasher 14 December 2009 в 18:46
поделиться

8 ответов

Я не совсем понимаю ваш вопрос, но вы можете проинструктировать Visual Studio для копирования файла из решения в выходную папку при каждой сборке.

Позвольте мне попытаться понять ваш сценарий:

  • У вас есть файлы XSLT, зарегистрированные в системе управления версиями вместе с вашим кодом C #. Например, если ваш проект находится в папке MyProj, тогда файлы XSLT находятся в MyProj / Templates
  • . Вы хотите иметь возможность редактировать файлы xslt в папке Templates и отправлять эти изменения в систему управления версиями точно так же, как вы. с .cs или другими файлами в вашем проекте.
  • Вам нужна копия ваших xslt-файлов в папке bin / Debug или bin / Release вместе с исполняемым файлом.

Если это так, добавьте файлы XSLT в свой проект Visual Studio. Затем щелкните их правой кнопкой мыши, откройте «Свойства» и установите «Действие сборки» = «Содержимое» и «Копировать в выходной каталог» = «Всегда». Всякий раз, когда вы создаете свой проект, последняя копия файлов XSLT будет помещена в ваш каталог bin / Debug или bin / Release.

5
ответ дан 5 December 2019 в 10:04
поделиться

You can edit the file directly in the output folder.

On another note, a lot of people don't know that rich tools are built into VS to allow debugging xslts.

http://msdn.microsoft.com/en-us/library/ms255605(VS.80).aspx

2
ответ дан 5 December 2019 в 10:04
поделиться

Один из подходов - включить Директиву препроцессора C # , чтобы указать моей функции загрузки XSLT в каталоге решения в режиме отладки, но в выходной каталог при выполнении сборки выпуска.

Что-то вроде:

string viewFolder = AppDomain.CurrentDomain.BaseDirectory;

#if DEBUG
// Move up from /bin/debug
viewFolder = viewFolder + @"..\..\";
#endif

Но это похоже на взлом.

3
ответ дан 5 December 2019 в 10:04
поделиться

Очевидно, вы управляете двумя проблемами в одном проекте. Первая проблема - это ваша бизнес-логика (создание экземпляра преобразования XSLT, его вызов для преобразования некоторого содержимого XML, вывод результата HTML ...). Вторая проблема - это сама трансформация.

Так почему бы не создать отдельный проект для ваших листов xslt? «Сборка» этого проекта будет состоять из копирования листов в выходную папку. Изменение xslt не повлияет на другой проект, следовательно, сократит время сборки.

Разделение проблем на уровне проекта, то есть:)

3
ответ дан 5 December 2019 в 10:04
поделиться
  1. Создайте командный файл, который копирует ваши xslt из их исходного местоположения во все ваши каталоги bin (bin / debug bin / release или любые другие, которые вы определили)
  2. Добавьте командный файл в качестве внешнего инструмента , при желании можно назначить нажатие клавиши (или аккорда) для выполнения командного файла
  3. Редактировать, запустить инструмент (я бы назначил ему нажатие клавиши, чтобы упростить эту задачу), затем проверьте свою веб-страницу .
2
ответ дан 5 December 2019 в 10:04
поделиться

Может вы используете программу синхронизации файлов (например, Microsoft SyncToy «бесплатное приложение, которое синхронизирует файлы и папки между местоположениями») для копирования файлов? Это позволит вам избежать этапа «копирование при сборке», потому что файлы автоматически копируются после сохранения. Кроме того, если вы редактировали их в выходном каталоге, изменения можно было бы скопировать обратно в исходный контролируемый каталог. Не лучшая программа синхронизации в реальном времени для этого сценария, но это может быть другим вопросом.

0
ответ дан 5 December 2019 в 10:04
поделиться

У меня точно такая же проблема. Я купил программу под названием ViceVersa ( http://www.tgrmn.com/ ), в которой я настроил профили синхронизации, чтобы мои папки css, layout и xslt синхронизировались с моей машины на мой сервер разработки. как только будут внесены какие-либо изменения. Если я внесу какие-либо изменения в код, я просто опубликую его как обычно.

0
ответ дан 5 December 2019 в 10:04
поделиться

Одно из решений, которое может Вам помочь, - это установка соединения с Вашими шаблонами в Вашей выходной папке. Это позволит Вам использовать XSLT напрямую, не копируя их в выходную папку. Хорошей идеей является обеспечение (создание) соединения как сборочного действия.

Предусловия:

  • NTFS
  • Инструмент для создания соединения (например, junction)
2
ответ дан 5 December 2019 в 10:04
поделиться
Другие вопросы по тегам:

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