0
我已經動態加載了插件庫,我希望在開發過程中使用新版本來推送Web主機。爲避免複製中的「文件正在使用」錯誤,我在csproj中使用msbuild創建了app_offline.htm
以回收Web應用程序。將插件dll複製到文件夾後,只有當輸出發生更改後才能成功構建
<ItemGroup>
<ModuleFiles Include="$(TargetDir)*.dll" />
</ItemGroup>
<Target Name="PublishModule" AfterTargets="PostBuildEvent">
<WriteLinesToFile File="$(SolutionDir)src\FooBar.Web.Mvc\app_offline.htm" />
<Copy SourceFiles="@(ModuleFiles)" DestinationFolder="$(SolutionDir)src\FooBar.Web.Mvc\Modules\FooBar.Blog\" SkipUnchangedFiles="true" />
<Delete Files="$(SolutionDir)src\FooBar.Web.Mvc\app_offline.htm" />
</Target>
它正常工作,但我不知道它是否可以通過包裝PublishModule
目標只有當輸出改變執行得到改善。所以,如果我構建的插件沒有改變,它不會不必要地回收Web主機。 SkipUnchangedFiles
可防止任何未更改的DLL被複制,但app_offline
仍被創建。
我需要這樣的東西,但它似乎沒有做任何事情。
<RunPostBuildEvent>OnOutputUpdated</RunPostBuildEvent>
正是我需要的,謝謝! – Xeevis