3

Visual Studio (UI、プロジェクトの右クリック、公開) を介して PublishProfile を使用して MVC プロジェクトを公開し、宛先フォルダーをクリアするオプションにチェックを入れています。しかし、特定のフォルダ「ダウンロード」をクリアしたくない

私はこれを機能させるために数え切れないほどの時間を費やしました。ここで説明した人とまったく同じコードを持っていると思いますが、それでもダウンロードフォルダーは削除されます

また、以下の例のように、宛先フォルダーの削除を選択解除すると機能する「favicon」の ExcludeFromPackageFiles があります (私の wpp ターゲットが実際に実行されていることを示すためだけに)。

以下は私のprojectname.wpp.targetsファイルです

<?xml version="1.0" encoding="utf-8" ?>
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">

  <!-- this doesnt work -->
  <PropertyGroup>
    <AfterAddIisSettingAndFileContentsToSourceManifest>AddCustomSkipRules</AfterAddIisSettingAndFileContentsToSourceManifest>
  </PropertyGroup>

  <PropertyGroup>
    <UseMsDeployExe>true</UseMsDeployExe>
  </PropertyGroup>

  <Target Name="AddCustomSkipRules">
    <Message Text="Adding Custom Skip Rules" />
    <ItemGroup>
      <MsDeploySkipRules Include="SkipErrorLogFolder1">
        <SkipAction>Delete</SkipAction>
        <ObjectName>filePath</ObjectName>
        <AbsolutePath>ErrorLog</AbsolutePath>
      </MsDeploySkipRules>
    </ItemGroup>
  </Target>

  <!-- this works! -->
  <ItemGroup>
    <ExcludeFromPackageFiles Include="favicon.ico">
      <FromTarget>ContactManager.Mvc.wpp.targets</FromTarget>
    </ExcludeFromPackageFiles>
  </ItemGroup>

</Project>

何か案は?

4

1 に答える 1

5

(1)AbsolutePathあなたの例の値は、スキップルールの例からコピー/貼り付けされています。その値をフォルダーのパスに変更する必要がありDownloadsます。

  <Target Name="AddCustomSkipRules">
    <Message Text="Adding Custom Skip Rules" />
    <ItemGroup>
      <MsDeploySkipRules Include="SkipDownloadsFolder">
        <SkipAction>Delete</SkipAction>
        <ObjectName>filePath</ObjectName>
        <AbsolutePath>Downloads</AbsolutePath>
      </MsDeploySkipRules>
    </ItemGroup>
  </Target>

(2) Visual Studio 内から発行する場合、カスタム スキップ ルールは使用できません。コマンド プロンプトから MSBuild を使用して発行する必要があります。私の質問の性質は、VS 2012 Update 3 の時点で、コマンド ラインの制限がなくなったため、VS 内で管理される発行プロファイルの利便性とカスタム スキップ ルール (コマンド ラインが必要) のユーティリティを組み合わせることに関するものでした。持ち上げられました。

私の MSBuild コマンドは次のようになります。

C:\Windows\Microsoft.NET\Framework\v4.0.30319\MSBuild.exe My.Website.sln /p:Configuration=Release;DeployOnBuild=true;PublishProfile="Test Server - Web Deploy"

VS 2012 内から公開しようとすると、「-verb:sync」が出力に明確に表示されていても、次のエラーが発生します。

2>Start Web Deploy Publish the Application/package to http://my.website.example.com/MSDEPLOYAGENTSERVICE ...
2>C:\Program Files (x86)\IIS\Microsoft Web Deploy V3\msdeploy.exe 
  -source:manifest='C:\inetpub\wwwroot\My.Website\obj\Release\Package\My.Website.SourceManifest.xml' 
  -dest:auto,ComputerName='http://my.website.example.com/MSDEPLOYAGENTSERVICE',UserName='...',Password="...",IncludeAcls='False',AuthType='NTLM' 
  -verb:sync 
  -disableLink:AppPoolExtension 
  -disableLink:ContentExtension 
  -disableLink:CertificateExtension 
  -skip:skipaction='Delete',objectname='filePath',absolutepath='ErrorLog' 
  -skip:objectname='dirPath',absolutepath='obj\\Release\\Package\\PackageTmp\\App_Data$' 
  -skip:objectname='dirPath',absolutepath='MyWebsite/\\App_Data$' 
  -setParamFile:"C:\inetpub\wwwroot\My.Website\obj\Release\Package\My.Website.Publish.Parameters.xml" 
  -retryAttempts=2 
2>MSDEPLOY(0,0): Error : The verb must be specified by using the -verb argument.
2>MSDEPLOY(0,0): Error count: 1.
于 2013-09-24T20:13:02.950 に答える