我試圖讓我的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