devenv VS aspnet_compiler

Ако използвам aspnet_compiler за публикуване на ASP.NET MVC уеб сайт, той изпълнява ли същите задачи, които devenv би изпълнил? Или е само предварително компилиране, за да се минимизира забавянето при стартиране?

Т.Е. моето изискване е да мога да компилирам и публикувам уеб сайт на ASP.NET. в този случай трябва ли първо да използвам devenv за изграждане на уеб сайта и след това да използвам aspnet_compiler за предварително компилириране и копиране на файловете (публикуване)?

Или ако просто използвам aspnet_compiler, това също ще направи ли изграждането (компилирането) на изходните и референтните проекти за съответните dll?

Вашите отговори са високо оценени. Благодаря много.


person Eranga Dissanayaka    schedule 15.11.2010    source източник
comment
Възможен дубликат: stackoverflow.com/questions/1369250 /   -  person Mr Lister    schedule 01.02.2012


Отговори (2)


Да започнем с кратък отговор - aspnet_compiler.exe не е свързано с ASP.NET MVC.

MVC проектите се компилират или от devenv.exe, или от msbuild.exe, или от каквото и да е друго (Roslyn някой?). Но тези 2 са снабдени с VS инсталация.

aspnet_compiler се използва [в смисъл на компилация] за компилиране на WSP - проекти за уеб сайтове. В WSP всеки код отзад се компилира в отделен DLL. Но MVC проектите се компилират в един DLL като WAP - проект за уеб приложение.

Съмнявам се, че имате WSP и MVC, а дори и да имате такъв - все пак е по-добре да се компилира с devenv, защото devenv компилира ashx файлове, а aspnet_compiler не. Това може да доведе до грешки по време на изпълнение.

За да разберете проблема по-добре проучете

проекти за уеб сайт срещу проект за уеб приложение

Въпреки че вярвам, че във VS15 WSP го няма

person T.S.    schedule 03.08.2016

Не знам дали има такова нещо като aspnet_compiler. Разгледайте част от файла на проекта „Visual C# -> ASP.NET Web Application“:

<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
<Import Project="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v10.\WebApplications\Microsoft.WebApplication.targets" />

Първият ред е стандартна C# цел. Второ, е по-интересно, тъй като е специфично за ASP.NET. Ако разгледате съдържанието му, ще намерите дефиниция на целта Публикуване и вероятно това е, което търсите.

За изграждане и публикуване на вашия проект можете да използвате (или дори просто да публикувате, ако има предварително дефинирани зависимости, не съм го проверил)

msbuild /t:Build,Publish <project file>
person StanislawSwierc    schedule 15.11.2010