3

在运行我们的部署项目时,我们似乎遇到了一个问题,当它编译时,它似乎错过了输出中的母版页。

有没有办法通过编辑 .wdproj 文件或通过其他方法“强制”项目包含 .master 文件?

此外,我一直在阅读MSBuildTasks 社区项目,并遵循了一些示例文档,但这似乎不起作用。该项目不会排除我选择的文件,并且似乎也不会进行压缩。有没有其他人尝试过这个可以提供反馈/指导的扩展?

提前谢谢了

更新:

我已经通过创建一个 Itemgroup 并做一个副本来解决这个问题。

<ItemGroup>
  <MasterFiles Include="$(SolutionDir)\MVC\Views\Shared\Templates\**\*.master" />
</ItemGroup>

<Target Name="AfterBuild">
  <Copy SourceFiles="@(MasterFiles)" DestinationFiles="$(OutputPath)\Views\Shared\Templates\%(RecursiveDir)%(Filename)%(Extension)" />
</Target>
4

2 回答 2

2

我注意到 Web 部署项目的一个问题是它假定您的 Web 应用程序已经构建。因此,您必须在调用 .wdproj 本身之前构建它。我不确定这是否是你的问题。

关于排除文件,您必须打开 .wdproj 文件,它只是一个MSBuild文件。要排除文件,请将它们添加到ExcludeFromBuild项。例如,要确保您的项目文件不包含在部署中,您可以添加如下语句:

<ItemGroup>
    <ExcludeFromBuild Include="$(SourceWebPhysicalPath)*.csproj"/>
    <!-- Below excludes svn folders -->
    <ExcludeFromBuild Include="$(SourceWebPhysicalPath)**\.svn\**\*"/>
</ItemGroup>

赛义德·易卜拉欣·哈希米

我的书:Microsoft Build Engine 内部:使用 MSBuild 和 Team Foundation Build

于 2009-06-19T15:18:56.920 回答
0

我已经通过创建一个 Itemgroup 并做一个副本来解决这个问题。

<ItemGroup>
  <MasterFiles Include="$(SolutionDir)\MVC\Views\Shared\Templates\**\*.master" />
</ItemGroup>

<Target Name="AfterBuild">
  <Copy SourceFiles="@(MasterFiles)" DestinationFiles="$(OutputPath)\Views\Shared\Templates\%(RecursiveDir)%(Filename)%(Extension)" />
</Target>

非常感谢

于 2009-06-24T10:55:01.367 回答