Проблемы с автоматической предварительной компиляцией веб-сайта с помощью MSbuild

StackOverflow https://stackoverflow.com/questions/308931

  •  08-07-2019
  •  | 
  •  

Вопрос

Все,

В настоящее время у меня есть решение, состоящее из двух библиотек классов и создания веб-сайта в 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 для артефакта

Ваше здоровье

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top