Предварительная компиляция ASP.net MVC - PullRequest
1 голос
/ 24 октября 2009

Полагаю, вы можете предварительно скомпилировать приложение asp.net mvc, но есть некоторые проблемы с файлами aspx. Правильно ли говорить, что папка просмотра должна быть скопирована в развернутое местоположение? Если так, то кто-нибудь знает почему? Спасибо

Ответы [ 2 ]

2 голосов
/ 25 октября 2009

Краткий ответ: файлы ASPX (и ASCX) не компилируются и должны быть скопированы с приложением при развертывании в IIS.

Вы можете предварительно скомпилировать приложение ASP.NET MVC, но файлы ASPX / ASCX не включаются в микс. По нашему опыту, мы не смогли использовать aspnet_compiler.exe для объединения всего в двоичный файл, поэтому мы используем csc (через nant) для компиляции всего, что можно скомпилировать, а затем скопировать остальное. Это включает в себя папку просмотра.

Если это поможет, соответствующая часть одного из наших скриптов nant выглядит следующим образом:

(при условии, что все зависимости уже скопированы в папку bin сайта (в данном случае BuildDir))

<csc target="library" output="${BuildDir}/bin/${FinalDeployDllName}.dll" >
  <references failonempty="true">
    <include name="${BuildDir}/bin/SomeDependency.dll" />
  </references>
  <sources>
    <include name="${BuildDir}/**/*.cs" />
  </sources>
</csc>

<copy todir="${target}" overwrite="true">
  <fileset basedir="${BuildDir}">
    <include name="**/*.???x" />
    <include name="**/*.js" />
    <include name="**/*.jpg" />
    <include name="**/*.jpeg" />        
    <include name="**/*.gif" />
    <include name="**/*.png" />
    <include name="**/*.html" />
    <include name="**/*.css" />
    <include name="**/*.swf" />
    <include name="**/*.Master" />
    <include name="**/Web.config" />
    <include name="images/**/*" />
    <include name="bin/**/*" />
    <include name="Content/**/*" />
  </fileset>
</copy>

<delete>
  <fileset>
    <include name="${target}/*.build" />
    <include name="${target}/*.scc" />
    <include name="${target}/*.sln" />
    <include name="${target}/*.suo" />
    <include name="${target}/build.*" />
    <include name="${target}/*.resharper" />
    <include name="${target}/*.resharper.user" />
    <include name="${target}/bin/*.xml" />
    <include name="${target}/bin/*.pdb" />
  </fileset>
</delete>

Это создаст папку {target} со всеми необходимыми файлами для развертывания, которые будут упакованы оттуда по вашему усмотрению.

2 голосов
/ 24 октября 2009

Я всегда использовал Проекты веб-развертывания для предварительной компиляции веб-приложений и подготовки их к развертыванию. Скотт Гатри написал в блоге об этом.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...