能否让nant在Web应用程序项目上运行发布?

8
有没有可能让nant在mvc项目或传统的Web应用程序项目上运行发布,并在发布后让nant将文件FTP到web服务器?更新:已经找到了FTP问题的解决方案,感谢Paco提供的Nant ftp task。我的意思是什么是公开的,是否有命令行应用程序或nant任务可以像Visual Studio发布一样进行公开...
2个回答

8
Visual Studio发布命令将重建您的解决方案,然后将解决方案目录中的文件复制到一个新目录中。我使用以下目标实现几乎相同的功能:
<target name="copyToPublish">
    <delete dir="${dir.publish}" />
    <mkdir dir="${dir.publish}" />
    <mkdir dir="${dir.publish}\wwwroot"/>
    <copy todir="${dir.publish}\wwwroot" includeemptydirs="false">
      <fileset basedir="${website.dir}">
        <exclude name="**/*.cs"/>
        <exclude name="**/*.pdb"/>
        <exclude name="**/*.csproj*"/>
        <exclude name="**/obj/**"/>
        <include name="**/*.*"/>
      </fileset>
    </copy>
    <mkdir dir="${dir.publish}\database"/>
    <copy todir="${dir.publish}\database" includeemptydirs="false">
      <fileset basedir="${dir.databasescripts}">
        <include name="**/*.sql" />
      </fileset>
    </copy>
    <xmlpoke
            file="${dir.publish}\wwwroot\Web.config"
            xpath="/configuration/system.web/compilation/@debug"
            value="false" />
    <xmlpoke
            file="${dir.publish}\wwwroot\Web.config"
            xpath="/configuration/system.web/trace/@enabled"
            value="false" />
    <move file="${dir.publish}\wwwroot\Web.config" tofile="${dir.publish}\wwwroot\Release.config" overwrite="true" />
    <delete file="${dir.publish}\wwwroot\Web.config" />
</target>

当然,在执行此目标之前,您必须先运行正常的构建过程。


这仅复制DLL文件,而不包括网页。 - Khash
这确实复制了 .aspx、.ascx、.html 等“网页”。 - Paco

3

有一个适用于nant的Ftp Task。此外,您需要创建一个脚本来复制所需的文件和目录以及配置文件。我不会自动执行此操作,因为我想控制数据库更新脚本和web.config中的更改。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接