我试图让我的web应用程序自动发布时执行发布构建。我正在使用_CopyWebApplication目标执行此操作。我将以下内容添加到了我的.csproj文件中:_CopyWebApplication与web.config转换
<!-- Automatically Publish in Release build. -->
<Import Project="$(MSBuildExtensionsPath)\Microsoft\VisualStudio\v10.0\WebApplications\Microsoft.WebApplication.targets" />
<Target Name="AfterBuild">
<RemoveDir Directories="$(ProjectDir)..\Output\MyWeb" ContinueOnError="true" />
<MSBuild Projects="MyWeb.csproj" Properties="Configuration=Release;WebProjectOutputDir=$(ProjectDir)..\Output\MyWeb;OutDir=$(ProjectDir)bin\" Targets="ResolveReferences;_CopyWebApplication" />
</Target>
这有效,但有一个问题。此输出与在Visual Studio中使用“发布”菜单项时生成的输出之间的区别在于,使用MSBuild方法时,Web.Release.config转换不会应用于Web.config文件。相反,Web.config,Web.Release.config和Web.Debug.config都被复制。
任何想法表示赞赏。
WTF Microsoft?感谢分享这个Jabe ... – jjxtra 2012-01-23 22:01:08
我不知道我有一种方法可以修复复制通过其他项目引用的库,以包含在msbuild输出目录中? – 2013-11-25 11:48:22
我试图用WebDeploy use/p:WebPublishMethod = FileSystem并使用pubxml文件来做到这一点。我无法让它工作。这个解决方案是我找到的最好的方法。建议一句话:如果没有OutDir属性设置,我无法使其工作。即使已经在项目属性中定义了它,也需要将其包含在命令行中。 – 2014-12-04 16:26:40