在运行我们的部署项目时,我们似乎遇到了一个问题,当它编译时,它似乎从输出中错过了我们的母版页。
有没有办法通过编辑.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>
答案 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>
非常感谢