Как я компилирую ASP.NET проект MVC использование MSBuild

Как я компилирую ASP.NET проект MVC использование MSBuild? Мы используем Непрерывный Сервер интеграции, чтобы скомпилировать и развернуть наши приложения. Для хранения вещей простыми, я создал проект MVC 1.0 в VS2008. Я сразу создал файл сценария MSBuild для компиляции его. Я не изменил кода в проекте. Сценарий MSBuild содержал следующую цель.

   <AspNetCompiler
      VirtualPath="/"
       PhysicalPath="C:\Development\mvc1\"
        TargetPath="c:\publish\xxx"
        Force="true"
        Debug="false" 
 Updateable="true"

Проект MVC sln файл содержится в c:\development\mvc1\ directory. Я выполняю XP/Pro.

Я получаю ошибку ASPCONFIG: это - ошибка использовать раздел, зарегистрированный в качестве allowDefintion ='MachineToApplication' вне прикладного уровня.. Я удалил authenication режим, поставщика членства, и т.д. из веб-файла конфигурации, пока я наконец не видел другое сообщение об ошибке. Я теперь получаю сообщение об ошибке, говоря, что файл '/views/shared/site.master' не существует.

Что продолжается? Заранее спасибо за Вашу справку!

Я использую неправильную команду MSBuild?

14
задан jamesaharvey 3 February 2010 в 22:01
поделиться

3 ответа

Из того, что я видел, следующее верно для Firefox и Chrome;

1) Если страница HTML открыта с удаленного узла, то файл :// ссылки не будут работать, т.е. адресная строка читается http ://someserver.domain , а страница содержит ссылку, например < a href = "file:///S :/sharedfile.txt ">

2) Если на локальном хосте открыта HTML-страница, то файл:// ссылки будут работать, т. е. адресная строка читает файл ://C :/mydir/index.html , а страница содержит ссылку, например < a href = «file ://S :/sharedfile.txt» >

Для Internet Explorer пункта 1) не имеет значения true. Доступ к файлу на локальном хосте можно получить с помощью синтаксиса ссылки file :// с веб-страницы на удаленном хосте. Это считается недостатком безопасности в IE (Кем? Ссылки?) (и это тоже есть в IE8), потому что удаленный хост может получить доступ к файлам на вашем локальном компьютере без вашего ведома .... Надо признать, что им повезло с именем файла, но там много часто именованных файлов, которые могут содержать личную/личную информацию.

-121--2024445-

Правильный способ представления коллекции из нескольких выбранных параметров - использование массива путем именования тэга SELECT суффиксом [].
Проблема в том, что он неправильно обрабатывается методом jQuery serialize ().
Для такого SELECT infact:

<select name="a[]">
    <option value="five">5</option>
    <option value="six">6</option>
    <option value="seven">7</option>
</select>

serialize отправляет этот массив: a [] = 0 & a [] = 1 & a [] = 2 получен PHP таким образом:

[a] => Array
    (
        [0] => 0
        [1] => 1
        [2] => 2
    )

, где реальные значения теряются.

- У 121---4749311-

, Если вы собираете свой sln-файл (msbuild mysolution.sln) или

<MSBuild Projects="msbuild mysolution.sln" Targets="Rebuild" ContinueOnError="false"
StopOnFirstFailure="false" /><!-- -d -errorstack -->

и sln-файл, есть .csproj-файл MVC-проекта ASP.NET тогда, у .csproj-файла действительно есть все, в чем вы нуждаетесь. Откройте файл .csproj с блокнотом и найдите:

1) Это должно быть верно:

<MvcBuildViews>false</MvcBuildViews>

2) Target Name = «AfterBuildCompiler»:

  <Target Name="AfterBuildCompiler" Condition="'$(MvcBuildViews)'=='true'">
    <AspNetCompiler VirtualPath="SomeVirtualDir" PhysicalPath="C:\Development\mvc1\" TargetPath="c:\publish\xxx\" />
  </Target>

Я больше ничего не делал и это сработало. На самом деле, я сделал свою конфигурацию так, что только release build развернуть приложение (путем перемещения MvcBuildView-свойство в PropertyGroups. Тогда я могу использовать тот же самый .csproj в разработке (отладка) и развертывании (выпуск).

6
ответ дан 1 December 2019 в 14:44
поделиться

Самым простым способом, который я нашел, было добавить проект WebDeployment в ваше решение. http://www.microsoft.com/DOWNLOADS/details.aspx?FamilyID=0aa30ae8-c73b-4bdd-bb1b-fe697256c459&displaylang=en

Вы устанавливаете свойства для сборки в проекте WebDeployment (например, прекомпиляции ) . Buildserver собирает wdprj.

В моем окружении я должен начать со сборки web. После этого я могу запустить wdprj.

Вот мой nant - скрипт. Должно быть легко написать то же самое в msbuild. На самом деле он работает в TeamCity.

xml version="1.0"?>
<project name="GreatProjectWeb"
 default="build"  basedir="."
 xmlns="http://nant.sf.net/release/0.85/nant.xsd">


 <description>Build Script</description>
 <!-- builds only the csproj, not the entire solution-->
 <target name="build" description="Compile the project using Debug configuration for more verbose error descriptions">
 <echo message="Building..."> </echo>

 <exec program="C:\WINDOWS\Microsoft.NET\Framework\v3.5\MSBuild.exe"    >  

 <arg value="GreatProjectWeb\GreatProjectWeb.csproj" />
 <arg value="/t:Build" />
  <arg value="/p:Configuration=Release" />
 </exec>
  <echo message="Building Projektfile finished. Starting WDP Project..."> </echo>

  <exec program="C:\WINDOWS\Microsoft.NET\Framework\v3.5\MSBuild.exe"    >  

 <arg value="GreatProjectWeb_Build\GreatProjectWeb_Build.wdproj" />
 <arg value="/t:Build" />
  <arg value="/p:Configuration=Release" />
 </exec>

   <exec program="7z"    >  
 <arg value="a" />
 <arg value="GreatProjectWeb_Deploy\web_GreatProject.zip" />
  <arg value="GreatProjectWeb_Deploy\*" />
 </exec>

 </target>

</project>
0
ответ дан 1 December 2019 в 14:44
поделиться

Вы можете использовать NAnt, в котором есть задача "msbuild", которая сделает это за Вас. NAnt - это отличный способ для создания КИ.

NAnt домашняя страница Главная страница NAnt Contrib. Ссылка на задачу MSBuild из NAnt Contrib

...библиотеки, предоставляющей материалы, добавляет некоторую большую функциональность, которой нет в ванильном NAnt. Она очень проста. Я включил сюда фрагмент моего .build файла, чтобы вы могли увидеть, как я его использовал:

<property name="DeployDestination" value="\\MyTestServerName\DestinationFolder"/>
<property name="Solution.Configuration" value="Debug" overwrite="True" />
<property name="nant.settings.currentframework" value="net-3.5" />
<if test="${WebContentDestination=='Production'}">
    <property name="DeployDestination" value="\\MyProductionServer\DestinationFolder"/>
</if>

...<snip>

<target name="Build">
    <msbuild project="SolutionFileName.sln">
        <arg value="/p:Configuration=${Solution.Configuration}" />
    </msbuild>
</target>

<target name="Deploy">
    <copy todir="${DeployDestination}" flatten="true" >
        <fileset>All files to copy</fileset>
    </copy>
</target>
0
ответ дан 1 December 2019 в 14:44
поделиться
Другие вопросы по тегам:

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