0

Web Deploy を使用して公開するように設定された WebForms プロジェクトを含む VS2010 ソリューションがあります。別の WinForms プロジェクトと WinForms Setup があり、その出力も公開する必要があります。

現在、これらのセットアップ ファイルは Web プロジェクトに追加され、通常はチェックインされたままになっています。以前は手動で置き換えていました。

セットアップ プロジェクトからコピーして古いバージョンを置き換える WebClient でビルド後のスクリプトを作成しようとしましたが、古いセットアップ ファイルがチェックインされたため、「アクセスが拒否されました」という問題が発生しました。

質問:

  • プロジェクトの一部ではないファイルを Web Deploy パブリッシュに含めるためのより良い方法はありますか?
  • そうでない場合、これらのファイルを自動チェックアウトして、バッチ スクリプトを使用して上書きできるようにする方法はありますか?
4

1 に答える 1

1

プロジェクトの一部ではないファイルを Web Deploy パブリッシュに含めるためのより良い方法はありますか?

はい。Web Deploy は、Web アプリケーションのファイルを展開 (またはパッケージ化) する前に一時フォルダーにコピーします。最善の策は、そのイベントにフックして、セットアップ ファイルを一時ディレクトリ構造にコピーすることです。

<!-- This goes in your publish profile (or ProjectName.wpp.targets if you don't 
     have the Azure SDK or VS 2012 installed) -->
<PropertyGroup>
  <PipelineCollectFilesPhaseDependsOn>
    CollectWindowsFormsApp;
    $(PipelineCollectFilesPhaseDependsOn);
  </PipelineCollectFilesPhaseDependsOn>
</PropertyGroup>

<Target Name="CollectWindowsFormsApp">
  <ItemGroup>
    <FilesForPackagingFromProject  Include="$(SolutionDir)YourWindowsFormsApp\bin\debug\YourWindowsFormsApp.msi">
      <DestinationRelativePath>App_Data\YourWindowsFormsApp.msi</DestinationRelativePath>
    </FilesForPackagingFromProject>
  </ItemGroup>
</Target>
于 2013-01-24T02:50:33.523 に答える