0

我有一个带有 WebForms 项目的 VS2010 解决方案,该项目设置为使用 Web Deploy 发布。还有另一个 WinForms 项目和一个 WinForms 设置,我也需要发布其输出。

现在这些设置文件已添加到 Web 项目中,并且通常保持签入状态。我们以前手动替换它们。

我尝试在 WebClient 上编写构建后脚本以从安装项目复制并替换旧版本,但由于签入了旧安装文件,因此遇到了“拒绝访问”问题。

问题:

  • 有没有更好的方法在 Web Deploy 发布中包含不属于项目的文件?
  • 如果没有,有没有办法自动签出这些文件,以便可以使用批处理脚本覆盖它们?
4

1 回答 1

1

有没有更好的方法在 Web Deploy 发布中包含不属于项目的文件?

是的。Web 部署在部署(或打包)它们之前将您的 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 回答