我遇到了这个问题,我的 Bin 可以很好地构建和部署,但在 Drop 树中不会创建任何网站。尝试了几天的很多东西,最终得出了对项目文件的更改作为解决方案。
我要部署的网站最初是 VS2008 中的 WebSite 项目,后来在 VS2012 中转换为 WebApplication 项目。在 csproj 文件(和/或 vbproj 文件)中,我找到了以下部分:
<Import Project="$(MSBuildBinPath)\Microsoft.VisualBasic.targets" />
<Import Project="$(VSToolsPath)\WebApplications\Microsoft.WebApplication.targets" Condition="'$(VSToolsPath)' != ''" />
我用以下内容替换了它,我从一个新创建的 MVC 应用程序中收集到:
<PropertyGroup>
<VisualStudioVersion Condition="'$(VisualStudioVersion)' == ''">11.0</VisualStudioVersion>
<VSToolsPath Condition="'$(VSToolsPath)' == ''">$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)</VSToolsPath>
</PropertyGroup>
<Import Project="$(MSBuildBinPath)\Microsoft.VisualBasic.targets" />
<Import Project="$(VSToolsPath)\WebApplications\Microsoft.WebApplication.targets" Condition="'$(VSToolsPath)' != ''" />
<Import Project="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v11.0\WebApplications\Microsoft.WebApplication.targets" Condition="false" />
<Target Name="MvcBuildViews" AfterTargets="AfterBuild" Condition="'$(MvcBuildViews)'=='true'">
<AspNetCompiler VirtualPath="temp" PhysicalPath="$(WebProjectOutputDir)" />
</Target>
这定义了变量并设置了构建目标,以便自动构建选择它们。不知道为什么 WebApplication 转换过程会错过这些。如果您的项目不是 VB,请确保将“VisualBasic”替换为“CSharp”。此外,您可能需要使用 v10.0 而不是 v11.0,具体取决于构建服务器的配置。