[英]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.