Ответ 1
Я воткнула головой о стену. После прогулки по объектам MSBuild я столкнулся с чем-то очень "непрозрачным".
Короче говоря: попробуйте использовать новый _WPPCopyWebApplication
. Он работает на моей машине. Старый _CopyWebApplication
не поддерживает преобразования по устаревшим причинам. Это то, что я делаю:
msbuild /t:Rebuild /p:OutDir=..\publish\;Configuration=Release;UseWPP_CopyWebApplication=True;PipelineDependsOnBuild=False MvcApplication1\MvcApplication1.csproj
# UseWPP_CopyWebApplication = true requires PipelineDependsOnBuild = false
Длинная история:
Посмотрите VisualStudio\v10.0\WebApplications\Microsoft.WebApplication.targets
. Это так неправильно. Найдите _CopyWebApplication
в строке 70. Комментарий:
Исходный _CopyWebApplication теперь является Legacy, вы все равно можете использовать его, установив $(UseWPP_CopyWebApplication) в true. По умолчанию он теперь используется для использования _WPPCopyWebApplication target в Microsoft.Web.Publish.targets. Это позволяет использовать trsnaformation web.config. [all sic]
О, о. UseWPP_CopyWebApplication
по умолчанию используется значение false (строка 27), что имеет смысл, если вы не хотите разорвать существующий _CopyWebApplication
. Таким образом, установка его в true будет использовать новый материал WPP, представленный на VS 2010. Я предпочитаю это для вызова "скрытой" цели.