我检查了下面的中间选项"在发布期间预编译"。
这将FDeploy.pubxml文件更改了几行。精细。我将此单个更改提交到构建服务器。
下面是pubxml:
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<WebPublishMethod>FileSystem</WebPublishMethod>
<LastUsedBuildConfiguration>Release</LastUsedBuildConfiguration>
<LastUsedPlatform>Any CPU</LastUsedPlatform>
<SiteUrlToLaunchAfterPublish />
<LaunchSiteAfterPublish>True</LaunchSiteAfterPublish>
<ExcludeApp_Data>False</ExcludeApp_Data>
<publishUrl>C:\Temp</publishUrl>
<DeleteExistingFiles>True</DeleteExistingFiles>
<PrecompileBeforePublish>True</PrecompileBeforePublish>
<EnableUpdateable>False</EnableUpdateable>
<DebugSymbols>False</DebugSymbols>
<WDPMergeOption>DonotMerge</WDPMergeOption>
</PropertyGroup>
</Project>
启用了mvcbuildviews的远程构建。远程部署失败,出现以下错误:
Error 82 The name 'ViewBag' does not exist in the current context
Error 5 The name 'model' does not exist in the current context
等等。这样有超过100个错误。请记住,正常的msbuildviews启用msbuild步骤可以正常使用相同的代码。
我在web项目csproj上使用msbuild:
/p:DeployOnBuild=true /p:PublishProfile=FDeploy /p:VisualStudioVersion=12.0 /p:Configuration=Release
任何线索?哦,是的,检查框也导致我的开发机器上出现相同的错误,我必须完全删除bin,obj和appdata文件夹以中和它。但是,在构建服务器上执行新的检出没有帮助。
另请注意,当我回到旧的部署配置文件时,需要重新检查以修复部署。
答案 0 :(得分:1)
我不得不作弊来解决这个问题:我将MvcBuildViews的使用仅限于&#39; Debug&#39;该项目的版本:
在csproj文件中:
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<MvcBuildViews>true</MvcBuildViews>
</PropertyGroup>
在部署时,我使用mvcbuildviews遇到了其他无法解释的错误。似乎最好完全避免使用它。无论如何,构建仍然保持清洁,因为我也编译和测试调试版本。