Проблемы с автоматической предварительной компиляцией веб-сайта с помощью MSbuild
Вопрос
Все,
В настоящее время у меня есть решение, состоящее из двух библиотек классов и создания веб-сайта в TeamCity с использованием Msbuild.Теперь я хочу предварительно скомпилировать веб-сайт и сделать его доступным как артефакт.Однако когда я пытаюсь предварительно скомпилировать его, используя
<Target Name="PrecompileWeb" DependsOnTargets="Build">
<AspNetCompiler
PhysicalPath="$(BuildDir)\Location\"
TargetPath="$(BuildDir)\Publish"
Force="true"
Debug="true"
/>
</Target>
Я получаю сообщение об ошибке, потому что он ищет виртуальный путь (которого у меня нет, поскольку все, что я хочу сделать, это предварительно скомпилировать файлы, которые меня не интересуют в публикации сайта), если я вставлю фиктивный путь, я получу еще одну ошибку ( правильно) о том, что это не приложение под IIS
Есть идеи
Решение
Это веб-сайт или проект веб-приложения? Если последний, вместо выполнения задачи AspNetCompiler, выполняет задачу MSBuild для файла csproj / vbproj, вызывая цели Rebuild; ResolveReferences; _CopyWebApplication
и указывая свойство OutDir
. р>
Если вы используете веб-сайт, укажите VirtualPath в качестве допустимого пути IIS. Происходит следующее: когда вы не указываете свойство VirtualPath, оно пытается разрешить его, используя PhysicalPath и IIS. Я считаю, что это просто артефакт работы AspNetCompiler.
Другие советы
Я не уверен, что это сработает, поскольку это происходит в каждой сборке?Я хочу делать это только тогда, когда запускаю сборку на сервере TeamCity, а не на локальных сборках.
По сути, я в настоящее время
Создание всех необходимых решений Выполнение модульных тестов Создайте папку Zip для артефакта
Ваше здоровье