msbuild - NAnt <msbuild> 自定义输出目录

标签 msbuild nant

我是 NAnt 新手,并且已经能够创建 <target>其中

1) 从当前文件夹中删除所有代码

2) 从 SVN 导出新代码

3) 在默认目录中构建代码,即 PrecompiledWeb 文件夹(它是一个 Web 应用程序)

这里是:

<target name="export" description="export code from svn">
    <delete dir="${Delete.Dir}"></delete>
    <exec program="svn" commandline="export ${MySVN.Repos} ${MySVN.Dest}" />
    <msbuild project="${Solution.Filename}">
        <property name="Configuration" value="Release"/>
    </msbuild>
</target>

我想指定一个自定义输出目录(“PrecompiledWeb”除外)。这可能吗?您能否向我展示必要的标签/属性?

谢谢!

编辑

感谢 Scott 和 Si,我越来越接近解决方案,但我仍然没有任何有效的方法。有评论让我看到了这篇文章 MSBuild's Output Path Property 。使用他们的代码:

<?xml version="1.0"?>
<project name="test" default="build" basedir="." xmlns="http://nant.sf.net/schemas/nant-0.84.win32.net-1.0.xsd">
    <target name="build">
        <exec program="${framework::get-framework-directory('net-3.5')}/msbuild.exe">
          <arg value="${Full.Path}\Code\MySolution.sln" />
          <arg value="/p:OutputPath=${Full.Path}\Output\" />
        </exec>
    </target>
</project>

这将成功运行;但是,在我的包含网站和类库的解决方案中,它将类库 dll 发布到指定的输出路径,但它仍然将实际网站发布到默认的 PrecompiledWeb 文件夹。 p>

有人对如何从 NAnt 更改 PrecompiledWeb 文件夹路径有任何建议吗?

再次感谢所有提供帮助的人!

编辑 2 最终解决方案

这是我最终能够开始工作的内容(针对 .net 4 进行了更新):

<exec program="${framework::get-framework-directory('net-4.0')}/msbuild.exe">
    <arg value="${Full.Path}\Code\MySolution.sln" />
    <arg value="/t:Rebuild" />
    <arg value="/t:ResolveReferences" />
    <arg value="/t:_CopyWebApplication" />
    <arg value="/p:OutDir=${Build.Output}bin\" />
    <arg value="/p:WebProjectOutputDir=${Build.Output}" />
    <arg value="/p:Configuration=Release" />
</exec>

最佳答案

可以指定和覆盖 msbuild 的一些属性。为了指定输出目录,请覆盖 OutputDir 属性。

<target name="export" description="export code from svn">
        <delete dir="${Delete.Dir}" />
        <exec program="svn" commandline="export ${MySVN.Repos} ${MySVN.Dest}" />
        <msbuild project="${Solution.Filename}">
            <property name="Configuration" value="Release"/>
            <property name="OutputDir" value="${Output.Dir}"/>
        </msbuild>
</target>

关于msbuild - NAnt <msbuild> 自定义输出目录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/587672/

相关文章:

java - Hadoop 2.5.2 mvn 构建失败 Windows 7 x64 - hadoop-common 上的 compile-ms-native-dll?

c# - 是否有 Visual Studio 构建探查器?

web-services - 如何从 NAnt 调用 Web 服务

msbuild - NUnit 和 NAnt 的 future 考虑因素

.net - 在NAnt构建脚本中处理密码

c# - Nant 无法构建 c# .net 项目

visual-studio - 如何在没有 Visual Studio 的情况下安装 MSBuild 15.3?

c# - 什么是 .NET 程序集中的分散文件

msbuild - 从同一解决方案中的项目引用 Nuget 包所需的解决方案