CruiseControl.net,msbuild,/ p:OutputPath和CCNetArtifactDirectory

我正在尝试设置CruiseControl.net。到目前为止,它的工作很好,但我有一个MSBuild任务的问题。

根据文档,它将CCNetArtifactDirectory传递给MSBuild。但我该如何使用它?

我试过这个:


   /noconsolelogger /p:OutputPath=$(CCNetArtifactDirectory)\test

但那不行。实际上,这个错误会导致服务中断:

ThoughtWorks.CruiseControl.Core.Config.Preprocessor.EvaluationException:引用未知符号CCNetArtifactDirectory

文档是相当稀少的,谷歌和主要提供修改.sln项目文件,这是我想避免为了能够以后手动生成这个项目 - 我真的更喜欢 / p:OutputPath

0
额外 编辑
意见: 1

6 答案

如果你的曲线在P ^ n中(特别是在P ^ 2中 - 就像在你的例子中那样),我认为你可以做一些事情:将你的曲线从一般的P ^ {n-2}投影到P ^ 1。这意味着你 现在正在寻找Hurwitz方案的限制。这可以分解为两个问题:

  • 寻找底层M_ {0,n}

  • 的限制
  • 追踪分枝结构。

这里是一个例子:找出F + t Q ^ 2的极限,其中F是平面四次方,Q是平面二次方。

从你最喜欢的随机点项目。你可以验证家庭分歧点的限制

  • F和Q的八个交叉点

从这里开始,您可以继续各种方式(例如,您在极限曲线上有一条铅笔,从极限曲线穿过地图到一个平面圆锥曲线,其中有8个衍生点)

4
额外
谢谢!这是一个非常好的答案,因为(1)过去我已经实现了步骤1的算法(虽然不是很好),(2)我现在在MSRI,所以我可以继续谈话。
额外 作者 David E Speyer,
最近一篇关于Arzdorf和Wewers的论文 arxiv.org/abs/1211.4624 为该提案增添了一些细节。
额外 作者 David E Speyer,

这回答了你的问题的一个变种。

数论中的类似问题 - 在素数p上计算Q上曲线的正则适当最小模型 - 很难。对于属1,这是泰特的算法,对于属2来说,这是在清刘的一篇论文中完成的,并且需要很多工作。对于高等属(甚至超椭圆)曲线,我认为这仍然是开放的,可能太难做了。

然而,这是一个比半稳定还原更困难的问题(例如在第1类中,除以j-不变量的分母的素数正好是潜在的半稳定还原的质数)。

2
额外

可能是由于从其他位置移动文件导致文件系统上的权限问题,这可能会将原始访问控制列表一起移动。

尝试这个:

  1. 打开记事本
  2. 将网页内容粘贴到记事本
  3. 将布局保存为.aspx文件
2
额外
我会第二个,除了它可能是MOVE不是COPY。当你在NTFS中移动文件时,权限会随之移动(经典的部署错误,如果你用错误的XSLT文件来做这件事,会导致整个站点崩溃);-)另一件事:考虑在代码隐藏而不是内联代码中执行代码。 Sharepoint中的安全模式解析器允许在应用程序页面中嵌入代码,但允许在其他任何地方禁用它。从AC查看这篇文章: andrewconnell.com/blog/articles/…
额外 作者 Anonymous User,
很酷,谢谢澄清安德斯:)
额外 作者 Darren Kopp,
已经更新了我的答案
额外 作者 Darren Kopp,
我相信这是真的,假设您的网站设置为允许匿名访问,并且您没有任何文件系统访问问题。建议的步骤是否解决了您的问题?
额外 作者 Darren Kopp,
我想默认查看,通过布局文件夹中的匿名用户访问aspx页面,不应该有任何授权问题?
额外 作者 engtech,

CCNetArtifactDirectory默认传递给MSBuild,所以你不需要担心它。 MSBuild会将构建输出放置在与您指定的工作目录相关的“bin位置”中。

c:\WINDOWS\Microsoft.NET\Framework\v3.5\MSBuild.exe
C:\data\projects\FooSolution\
FooSolution.sln
/noconsolelogger /p:Configuration=Debug 

所以在上面的例子中,你的编译输出将被放在C:\ data \ projects \ FooSolution [ProjectName] \ bin \ Debug中。如果您想输出到不同的位置,您可能需要查看CCNET中的标签。


  
  
    C:\data\projects\FooSolution\FooProject\bin\Debug
    C:\published\FooSolution\
    false
  

这将允许您将您的输出发布到不同的位置。

0
额外

您可以在MSBuild脚本本身内使用工件目录变量。下面是我如何从CC.Net MSBuild脚本运行FxCop的示例(此脚本是CC.Net指向的内容 - 脚本中还包含一个“Build”目标,其中包含针对SLN的MSBuild任务做实际的编译):


0
额外

诸如 CCNetArtifactDirectory 之类的参数使用环境变量传递给外部程序。它们在外部程序中可用,但它们不在 CCNET 配置中。这通常会导致混淆。

您可以使用预处理器常量:



  <!-- [...] -->
  $(project.artifactDirectory)
  <!-- [...] -->
  
    <!-- [...] -->
    
      <!-- [...] -->
      /noconsolelogger /p:OutputPath=$(project.artifactDirectory)\test
      <!-- [...] -->
    
    <!-- [...] -->
  
  <!-- [...] -->

0
额外