我正在尝试让MSBuild 2010将Web应用程序发布到特定位置.我可以将部署包发布到特定路径,但部署包然后添加自己的路径更改.
例如:如果我告诉它发布到C:\dev\build\Output\Debug
那时实际的web文件最终在C:\dev\build\Output\Debug\Archive\Content\C_C\code\app\Source\ControllersViews\obj\Debug\Package\PackageTmp
和C_C
路径的一部分改变(不确定它如何选择路径的这一部分).
这意味着我不能只从发布位置编写副本.
我现在正在使用这个nant/msbuild命令:
<target name="compile" description="Compiles">
<msbuild project="${name}.sln">
<property name="Platform" value="Any CPU"/>
<property name="Configuration" value="Debug"/>
<property name="DeployOnBuild" value="true"/>
<property name="DeployTarget" value="Package"/>
<property name="PackageLocation" value="C:\dev\build\Output\Debug\"/>
<property name="AutoParameterizationWebConfigConnectionStrings" value="false"/>
<property name="PackageAsSingleFile" value="false"/>
</msbuild>
Run Code Online (Sandbox Code Playgroud)
有关如何将Web文件直接发送到特定位置的任何想法?
有没有可能让nant在mvc项目或一个好的旧的Web应用程序项目上运行发布,
并在发布后将文件发送到Web服务器
更新:找到解决ftp问题的
Nant ftp任务谢谢Paco
我的意思是publich
是否有一个命令行应用程序或nant任务,可以公开像visual studio发布...
我们有几百个测试类,其中几十个标有以下属性:[TestFixture] [Explicit] [Category("IntegrationTests")]因此它们只能在我们的夜间自动构建中运行.其余的TestFixtures没有指定类别(也没有标记为Explicit).
这是我们为执行测试而运行的NAnt任务:
<nunit2>
<test>
...
<categories>
<include name="IntegrationTests" />
</categories>
...
</test>
</nunit2>
Run Code Online (Sandbox Code Playgroud)
当然,这不会执行任何未分类的测试.
我希望能够做到这样的事情:
<nunit2>
<test>
...
<categories>
<include name="*" />
<include name="IntegrationTests" />
</categories>
...
</test>
</nunit2>
Run Code Online (Sandbox Code Playgroud)
所有未分类的测试都将与集成测试一起运行.这可能吗?如果是这样,语法是什么?
(注意:我正在寻找一个NAnt解决方案,如上所述,或NUnit命令行解决方案.我当然可以使用不同的选项运行NUnit两次,或者在我的所有TestFixtures上放置类别.这些是我的解决方法如果必须,可以使用,但是能够直接指定未分类的测试会更酷.)
我有自定义的NAnt任务用于测试目的,如果任务失败,我想取消NAnt构建过程.我创建了自定义ErrorTask:
[NAnt.Core.Attributes.TaskName("errorTask")]
public class ErrorTask : NAnt.Core.Task
{
public ErrorTask()
{
FailOnError = true;
}
protected override void ExecuteTask()
{
Log(NAnt.Core.Level.Error, "Error!");
}
}
Run Code Online (Sandbox Code Playgroud)
这是我在NAnt构建文件中的内容:
<target name="errorTarget">
<errorTask failonerror="true" />
<errorTask failonerror="true" />
</target>
Run Code Online (Sandbox Code Playgroud)
在结果(build.log)中我有:
errorTarget:
[errorTask] Error!
[errorTask] Error!
BUILD SUCCEEDED - 2 non-fatal error(s), 0 warning(s)
Total time: 0 seconds.
Run Code Online (Sandbox Code Playgroud)
所以,我可以看到第二个任务也在运行,但是我想取消它,因为第一个调用返回"Error!".你能协助我修理吗?
另外,我假设,没有必要对FailOnError值进行硬编码,它应该足以在构建脚本中使用failonerror属性,但在任何情况下它都不适用于我.
谢谢.
我有一个很大的项目,我创建了一些构建文件,我在不同的场景中使用,包括ccnet.所以,我有BF1.build和BF2.build
我只是想在BF1中某处从BF2.build调用/执行脚本
首先,我已经看过这篇文章:没有邮件问题,但唯一的答案并不令人满意(即:对我不起作用).
我正在使用NAnt获取最新版本的源代码,升级版本的库和应用程序,构建应用程序,构建设置......所有常见的事情,我敢打赌.我希望NAnt向某些人发送电子邮件,确认构建过程的结论; 我已经检查了该任务的官方(相当丑陋的,恕我直言)文档,但该示例一旦被复制和定制,就不起作用.
这是我正在使用的NAnt目标和任务:
<target name="sendMail" >
<mail
from="MyUserName@gmail.com"
tolist="user1@provider1.com;user2@provider1.com"
subject="Subject of email"
mailhost="smtp.gmail.com"
message="Your new release is ready!">
</mail>
</target>
Run Code Online (Sandbox Code Playgroud)
我得到的错误信息是:
530 5.7.0必须首先发出STARTTLS命令.
看起来该任务是为供应商不需要身份验证的帐户设计的; 但如果我必须使用需要身份验证的外部smtp服务器(告诉我的老板我内部需要一个smtp服务器不是一个选项),我该怎么办?
有人可以帮助/教我吗?
提前致谢...
nant ×6
nant-task ×6
categories ×1
explicit ×1
ftp ×1
msbuild ×1
msbuild-task ×1
nunit ×1
publish ×1