[英]MsBuild Target doesn't work
從Visual Studio 2017在服務器上發布后,我想更改.csproj文件以執行我的目標。
<PropertyGroup>
<PostBuildEvent>copy $(ProjectDir)\lib\Oracle.ManagedDataAccess.dll $(ProjectDir)\bin</PostBuildEvent>
</PropertyGroup>
<PropertyGroup>
<PreBuildEvent>copy $(ProjectDir)\lib\Oracle.ManagedDataAccess.dll $(ProjectDir)\bin</PreBuildEvent>
</PropertyGroup>
<ItemGroup>
<OracleSourceFile Include="$(ProjectDir)\lib\Oracle.ManagedDataAccess.dll"/>
<OracleDestinationFolder Include="$(ProjectDir)\bin"/>
</ItemGroup>
<Target Name="OracleTarget" AfterTargets="MSDeployPublish" >
<Copy
SourceFiles="@(OracleSourceFile)"
DestinationFolder="@(OracleDestinationFolder)">
</Copy>
</Target>
但這是行不通的。 我在發布輸出中看不到目標已執行。 我做錯了什么?
在閱讀了有關部署Web應用程序的Microsoft最佳實踐之后,特別是在此頁面上 ( 該頁面討論了部署額外的文件),我終於修改了.pubxml,如下所示:
<Target Name="OracleCollectFiles">
<ItemGroup>
<OracleSourceFile Include="lib\**\*" />
<FilesForPackagingFromProject Include="%(OracleSourceFile.Identity)">
<DestinationRelativePath>bin\%(Filename)%(Extension)</DestinationRelativePath>
</FilesForPackagingFromProject>
</ItemGroup>
</Target>
<PropertyGroup>
<CopyAllFilesToSingleFolderForPackageDependsOn>
OracleCollectFiles;
$(CopyAllFilesToSingleFolderForPackageDependsOn);
</CopyAllFilesToSingleFolderForPackageDependsOn>
<CopyAllFilesToSingleFolderForMsdeployDependsOn>
OracleCollectFiles;
$(CopyAllFilesToSingleFolderForMsdeployDependsOn);
</CopyAllFilesToSingleFolderForMsdeployDependsOn>
</PropertyGroup>
</Project>
MsBuild Target不起作用
您可以從File System
發布項目。 File System
不支持目標“ MSDeployPublish”。
“從VS發布文件系統協議后,我們當前不支持執行自定義目標。但是,如果從命令行發布,則將執行目標。”
因此,我們可以使用MSBuild命令行通過指定目標/t:OracleTarget
來執行此自定義目標:
msbuild "YourSolutionFile" /t:Build,OracleTarget /p:DeployOnBuild=true /p:PublishProfile=YourPublishFile.pubxml
此外 ,針對此問題的另一種解決方案 ,您可以使用目標CopyAllFilesToSingleFolderForPackage
而不是MSDeployPublish
:
<Target Name="OracleTarget" AfterTargets="CopyAllFilesToSingleFolderForPackage" >
<Copy
SourceFiles="@(OracleSourceFile)"
DestinationFolder="@(OracleDestinationFolder)">
</Copy>
</Target>
希望這可以幫助。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.