Web部署项目输出中缺少主页

时间:2009-06-19 11:50:35

标签: asp.net-mvc msbuild web-deployment-project msbuildcommunitytasks

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

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

另外,我一直在阅读MSBuildTasks community项目,并且已经关注了一些sample documentation,但这似乎不起作用。该项目不会排除我选择的文件,也不会进行压缩。有没有其他人尝试过可以提供反馈/指导的扩展程序?

非常感谢提前

更新

我已经通过创建一个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>

2 个答案:

答案 0 :(得分:2)

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

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

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

Sayed Ibrahim Hashimi

我的书:Inside the Microsoft Build Engine : Using MSBuild and Team Foundation Build

答案 1 :(得分: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>

非常感谢