2011-10-27 32 views
10

Tôi có tệp .wpp.targets tuỳ chỉnh đang thiết lập một số ACL. Khi tôi xây dựng từ trong studio trực quan, tệp tệp kê khai nguồn được tạo có chứa ACL tùy chỉnh.Tại sao tệp .wpp.targets của tôi không được áp dụng trên máy chủ xây dựng của tôi?

Khi tôi chạy từ máy chủ xây dựng của tôi, nó chỉ không hoạt động. Tệp được tạo không chứa tệp acl ra khỏi tệp .wpp.targets.

Máy chủ xây dựng có .net framework 4 được cài đặt, triển khai web, nó có tệp Microsoft.Web.Publishing.targets chính xác. Tôi đã bao gồm một số chẩn đoán từ việc xây dựng trên máy chủ có vẻ như là thuộc tính "AfterAddIisSettingAndFileContentsToSourceManifest" là sai. Tôi không quen thuộc với msbuild mặc dù. Có ai giúp được không?

EDIT:

tôi nhận thấy rằng trong Microsoft.Web.Publishing.targets tôi có các dòng sau:

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

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

Tuy nhiên không có gì về webpublishpipeline trong đầu ra từ msbuild là. Tôi không nghĩ rằng tập tin .wpp.targets của tôi thậm chí còn được xem xét!

Mục tiêu file:

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

Sản lượng 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 ('' != ''). 

Trả lời

3

Bạn có thể thay đổi thông số WebPublishPipelineProjectName. MSBuild cố gắng tìm (MSBuildProject) .wpp.targets theo mặc định, ví dụ: MyProject.wpp.targets. Cố gắng thiết lập/p: WebPublishPipelineProjectName = MyProject

Tôi hy vọng điều này sẽ giúp bạn

+3

Nó không MyProject.csproj.wpp.targets nhưng MyProject.wpp.targets –

Các vấn đề liên quan