2011-10-27 9 views
10

Tengo un archivo .wpp.targets personalizado que está configurando algunas ACL. Cuando construyo desde Visual Studio, el archivo de manifiesto fuente que se genera contiene las ACL personalizadas.¿Por qué mi archivo .wpp.targets no se aplica en mi servidor de compilación?

Cuando corro desde mi servidor de compilación, simplemente no funciona. El archivo generado no contiene los acl's fuera del archivo .wpp.targets.

El servidor de compilación tiene .NET Framework 4 instalado, implementación web, tiene el archivo Microsoft.Web.Publishing.targets correcto. He incluido algunos diagnósticos de la construcción en el servidor donde parece que la propiedad "AfterAddIisSettingAndFileContentsToSourceManifest" es falsa. Aunque no estoy familiarizado con msbuild. ¿Alguien puede ayudar?

EDIT:

me di cuenta de que en mis Microsoft.Web.Publishing.targets existe en los siguientes términos:

<PropertyGroup> 
    <WebPublishPipelineCustomizeTargetFile Condition="'$(WebPublishPipelineCustomizeTargetFile)'==''">$(WebPublishPipelineProjectDirectory)\$(WebPublishPipelineProjectName).wpp.targets</WebPublishPipelineCustomizeTargetFile> 
    </PropertyGroup> 

    <Import Project="$(WebPublishPipelineCustomizeTargetFile)" Condition="Exists($(WebPublishPipelineCustomizeTargetFile))"/> 

Sin embargo no hay nada acerca de la webpublishpipeline en la salida de msbuild. ¡No creo que mi archivo .wpp.targets siquiera esté siendo analizado!

El archivo objetivos:

<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> 

La salida 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 ('' != ''). 

Respuesta

3

Usted puede cambiar el parámetro WebPublishPipelineProjectName. MSBuild intenta buscar (MSBuildProject) .wpp.targets de forma predeterminada, p. MyProject.wpp.targets. Tratar de establecer/p: WebPublishPipelineProjectName = MiProyecto

espero que esto le ayuda

+3

Es que no MyProject.csproj.wpp.targets pero MyProject.wpp.targets –

Cuestiones relacionadas