Msbuild 为什么';我的.wpp.targets文件是否应用于我的生成服务器?
我有一个自定义的.wpp.targets文件,它正在设置一些ACL。当我从VisualStudio中生成时,生成的源清单文件包含自定义ACL 当我从构建服务器运行时,它就是不工作。生成的文件不包含.wpp.targets文件中的acl 生成服务器安装了.net framework 4 web deploy,它具有正确的Microsoft.web.Publishing.targets文件。我在服务器上的构建中包含了一些诊断信息,其中“AfterAddIsSettingAndFileContentsToSourceManifest”属性似乎为false。不过,我不熟悉msbuild。有人能帮忙吗 编辑: 我注意到在我的Microsoft.Web.Publishing.targets中有以下几行:Msbuild 为什么';我的.wpp.targets文件是否应用于我的生成服务器?,msbuild,build,microsoft-web-deploy,Msbuild,Build,Microsoft Web Deploy,我有一个自定义的.wpp.targets文件,它正在设置一些ACL。当我从VisualStudio中生成时,生成的源清单文件包含自定义ACL 当我从构建服务器运行时,它就是不工作。生成的文件不包含.wpp.targets文件中的acl 生成服务器安装了.net framework 4 web deploy,它具有正确的Microsoft.web.Publishing.targets文件。我在服务器上的构建中包含了一些诊断信息,其中“AfterAddIsSettingAndFileContents
<PropertyGroup>
<WebPublishPipelineCustomizeTargetFile Condition="'$(WebPublishPipelineCustomizeTargetFile)'==''">$(WebPublishPipelineProjectDirectory)\$(WebPublishPipelineProjectName).wpp.targets</WebPublishPipelineCustomizeTargetFile>
</PropertyGroup>
<Import Project="$(WebPublishPipelineCustomizeTargetFile)" Condition="Exists($(WebPublishPipelineCustomizeTargetFile))"/>
$(WebPublishPipelineProjectDirectory)\$(WebPublishPipelineProjectName).wpp.targets
但是,msbuild的输出中没有关于webpublishpipeline的内容。我认为我的.wpp.targets文件甚至没有被查看
目标文件:
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="4.0">
<!--
********************************************************************
Task Custom ACLs
********************************************************************
-->
<PropertyGroup>
<!-- Extends the AfterAddIisSettingAndFileContentsToSourceManifest action to also set ACLs-->
<AfterAddIisSettingAndFileContentsToSourceManifest Condition="'$(AfterAddIisSettingAndFileContentsToSourceManifest)'==''">
$(AfterAddIisSettingAndFileContentsToSourceManifest);
SetCustomACLs;
</AfterAddIisSettingAndFileContentsToSourceManifest>
</PropertyGroup>
<Target Name="SetCustomACLs">
<Message Text="Adding Custom ACls" />
<ItemGroup>
<!--Make sure the by default Networkservice/AppPoolIdentity have write permission to the root-->
<MsDeploySourceManifest Include="setAcl" >
<Path>$(_MSDeployDirPath_FullPath)\bin\ABCpdf8-64.dll</Path>
<setAclAccess>ReadAndExecute</setAclAccess>
<setAclResourceType>File</setAclResourceType>
<AdditionalProviderSettings>setAclResourceType;setAclAccess</AdditionalProviderSettings>
</MsDeploySourceManifest>
</ItemGroup>
</Target>
</Project>
$(在将设置和文件内容添加到源清单之后);
SetCustomACLs;
$(\u MSDeployDirPath\u FullPath)\bin\ABCpdf8-64.dll
读取和执行
文件
setAclResourceType;setAclAccess
msbuild输出:
[GenerateMsdeployManifestFiles] CallTarget
[22:13:44]: [CallTarget] Target "PipelinePreDeployCopyAllFilesToOneFolder" skipped. Previously built successfully.
[22:13:44]: [CallTarget] Target "GenerateMsDeployManifestSettings" skipped. Previously built successfully.
[22:13:44]: [CallTarget] Target "PipelinePreDeployCopyAllFilesToOneFolder" skipped. Previously built successfully.
[22:13:44]: [CallTarget] Target "GenerateMsDeployManifestSettings" skipped. Previously built successfully.
[22:13:44]: [CallTarget] Target "AddIis7ToSourceManifest" skipped, due to false condition; ($(_DeploymentUseIis) And ($(LocalIisVersion) >= '7')) was evaluated as (False And (7 >= '7')).
[22:13:44]: [CallTarget] Target "AddIis6ToSourceManifest" skipped, due to false condition; ($(_DeploymentUseIis) And ($(LocalIisVersion) < '7') ) was evaluated as (False And (7 < '7') ).
[22:13:44]: [CallTarget] AddContentPathToSourceManifest
[22:13:44]: [AddContentPathToSourceManifest] Using "GetDeployManagedRuntimeVersion" task from assembly "C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v10.0\Web\Microsoft.Web.Publishing.Tasks.dll".
[22:13:44]: [AddContentPathToSourceManifest] Task "CallTarget" skipped, due to false condition; ('$(AfterAddContentPathToSourceManifest)' != '') was evaluated as ('' != '').
[22:13:44]: [CallTarget] AddIisSettingAndFileContentsToSourceManifest
[22:13:44]: [AddIisSettingAndFileContentsToSourceManifest] Task "CallTarget" skipped, due to false condition; ('$(AfterAddIisSettingAndFileContentsToSourceManifest)' != '') was evaluated as ('' != '').
[22:13:44]: [CallTarget] Target "CollectDatabasesToPublish" skipped, due to false condition; ($(PublishDatabases)) was evaluated as (false).
[22:13:44]: [CallTarget] AddDatabasesToSourceManifest
[22:13:44]: [AddDatabasesToSourceManifest] Task "CallTarget" skipped, due to false condition; ('$(AfterAddDatabasesToSourceManifest)' != '') was evaluated as ('' != '').
[22:13:44]: [CallTarget] WriteItemsToSourceManifest
[22:13:44]: [WriteItemsToSourceManifest] Using "ExportManifestFile" task from assembly "C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v10.0\Web\Microsoft.Web.Publishing.Tasks.dll".
[22:13:44]: [WriteItemsToSourceManifest] Task "CallTarget" skipped, due to false condition; ('$(AfterWriteItemsToSourceManifest)' != '') was evaluated as ('' != '').
[GenerateMsdeployManifestFiles]调用目标
[22:13:44]:[CallTarget]跳过目标“PipelinePreDeployCopyAllFilesToOneFolder”。以前成功构建的。
[22:13:44]:[CallTarget]已跳过目标“GenerateMsDeployManifestSettings”。以前成功构建的。
[22:13:44]:[CallTarget]跳过目标“PipelinePreDeployCopyAllFilesToOneFolder”。以前成功构建的。
[22:13:44]:[CallTarget]已跳过目标“GenerateMsDeployManifestSettings”。以前成功构建的。
[22:13:44]:[CallTarget]由于条件错误,跳过了目标“Addis7ToSourceManifest”;($(_DeploymentUseIis)和($(LocalIisVersion)>='7')被评估为(False和(7>='7'))。
[22:13:44]:[CallTarget]由于条件为false,跳过了目标“AddIs6ToSourceManifest”;($(_DeploymentUseIis)和($(LocalIisVersion)<'7')被评估为(假和(7<'7'))。
[22:13:44]:[CallTarget]AddContentPathToSourceManifest
[22:13:44]:[AddContentPathToSourceManifest]使用程序集“C:\Program Files(x86)\MSBuild\Microsoft\VisualStudio\v10.0\Web\Microsoft.Web.Publishing.Tasks.dll”中的“GetDeployManagedRuntimeVersion”任务。
[22:13:44]:[AddContentPathToSourceManifest]由于条件错误,已跳过任务“CallTarget”;(“$(AfterAddContentPathToSourceManifest)”的计算结果为(“”!“”)。
[22:13:44]:[CallTarget]将设置和文件内容添加到源清单
[22:13:44]:[AddIsSettingAndFileContentsToSourceManifest]由于条件为false,已跳过任务“CallTarget”;(“$(AfterAddIsSettingAndFileContentsToSourceManifest)”的计算结果为(“”!“”)。
[22:13:44]:[CallTarget]目标“CollectDatabaseStopPublish”已跳过,原因是条件为false;($(PublishDatabases))被评估为(假)。
[22:13:44]:[CallTarget]将数据库添加到源清单
[22:13:44]:[AddDatabasesToSourceManifest]由于条件错误,已跳过任务“CallTarget”;(“$(AfterAddDatabasesToSourceManifest)”的计算结果为(“”!“”)。
[22:13:44]:[CallTarget]WriteItemsToSourceManifest
[22:13:44]:[WriteItemsToSourceManifest]使用程序集“C:\Program Files(x86)\MSBuild\Microsoft\VisualStudio\v10.0\Web\Microsoft.Web.Publishing.Tasks.dll”中的“ExportManifestFile”任务。
[22:13:44]:[WriteItemsToSourceManifest]由于条件错误,已跳过任务“CallTarget”;(“$(AfterWriteItemsToSourceManifest)”的计算结果为(“”!“”)。
您可以更改参数WebPublishPipelineProjectName。默认情况下,MSBuild尝试查找(MSBuildProject).wpp.targets,例如MyProject.wpp.targets。尝试设置/p:WebPublishPipelineProjectName=MyProject
我希望这对您有所帮助它不是MyProject.csproj.wpp.targets,而是MyProject.wpp.targets