如何在不编译和不复制SVN文件的情况下发布完整的网站

时间:2010-08-17 07:00:45

标签: asp.net visual-studio-2010 msbuild publishing web-site-project

显然,DNN安装不喜欢预编译(他们将无法找到任何本地化的字符串)。我们的安装安全地放在SVN中,这意味着我不能只复制整个目录。要发布所有内容,我需要复制整个网站目录,而不使用SVN文件和目录。到目前为止,我一直在搞乱旧的DOS命令,这很费时且容易出错。

有人可以帮助我使用MS-Built脚本或步骤来做到这一点吗?或者我可以使用默认的Visual Studio 2010命令执行此操作吗?

注意:这是网站,而非网络应用

3 个答案:

答案 0 :(得分:2)

只需svn export来自源代码管理的目录,它将为您提供一个没有.svn内容的干净副本。

答案 1 :(得分:1)

Visual Studio - &gt; Solution Explorer - &gt; <web site> - &gt; <right click> - &gt; Publish Web SiteCopy Web Site

答案 2 :(得分:1)

如果您对使用MSBuild进行自动化操作感兴趣,那么您可以使用以下内容进行自动化。

<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">

  <ItemGroup>
    <FilesToCopy Include="**\*"
                 Exclude="**\.svn\**"/>
  </ItemGroup>

  <PropertyGroup>
    <Dest>C:\temp\dest\</Dest>
  </PropertyGroup>

  <Target Name="CopyFiles">
    <Message Text="FilesToCopy: @(FilesToCopy)"/>
    <MakeDir Directories="$(Dest)"/>
    <Copy SourceFiles="@(FilesToCopy)"
          DestinationFiles="@(FilesToCopy->'$(Dest)%(RecursiveDir)%(Filename)%(Extension)')"/>
  </Target>

</Project>

因此,当我创建FilesToCopy项时,我会排除任何.svn文件夹下的所有文件。然后我只是在CopyFiles目标中执行复制。