2011-10-27 12 views
10

Ho un file .wpp.targets personalizzato che sta impostando alcuni ACL. Quando costruisco da Visual Studio, il file manifest sorgente che viene generato contiene gli ACL personalizzati.Perché il mio file .wpp.targets non viene applicato sul mio build server?

Quando corro dal mio server di build, semplicemente non funziona. Il file generato non contiene l'acl fuori dal file .wpp.targets.

Il server di build ha .net framework 4 installato, web deploy, ha il file Microsoft.Web.Publishing.targets corretto. Ho incluso alcuni strumenti di diagnostica dalla build sul server in cui sembra che la proprietà "AfterAddIisSettingAndFileContentsToSourceManifest" sia falsa. Comunque non ho familiarità con msbuild. Qualcuno può aiutare?

EDIT:

ho notato che nei miei Microsoft.Web.Publishing.targets c'è le seguenti righe:

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

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

Tuttavia non v'è nulla del webpublishpipeline in uscita dal msbuild. Non penso che il mio file .wpp.targets sia addirittura visto!

Il file obiettivi:

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

L'uscita 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 ('' != ''). 

risposta

3

È possibile modificare il parametro WebPublishPipelineProjectName. MSBuild tenta di trovare (MSBuildProject) .wpp.targets per impostazione predefinita, ad es. MyProject.wpp.targets. Prova a impostare/p: WebPublishPipelineProjectName = MyProject

Spero che questo ti aiuta

+3

E non MyProject.csproj.wpp.targets ma MyProject.wpp.targets –

Problemi correlati