小编The*_*man的帖子

什么是nAnt,以及它如何对我作为C#开发人员有用?

我总是编译我的项目,并将dll从依赖项目复制到UI bin文件夹.经过几天的"复制和粘贴"操作,每次我重新编译我的项目时,我总结说我需要一个能自动完成它的工具.经过几次搜索后发现这个工具是nAnt.

我搜索如何开始使用它的信息,但我没有找到太多.所以,我的问题是:

  • 用几句话说什么是nAnt?
  • 我怎样才能从中受益?

编辑:我不能只添加对依赖项目的引用,因为它将导致循环依赖.

.net c# nant visual-studio-2008

16
推荐指数
2
解决办法
8684
查看次数

什么比.Net CI的CruiseControl更好?

我被要求为另一个客户设置另一个CruiceControl环境.我意识到我多年来一直在使用CC而没有真正寻找竞争对手.还有什么其他的东西可以为.Net应用程序提供同样好或更好的工作吗?

cruisecontrol.net build-automation continuous-integration

14
推荐指数
2
解决办法
7359
查看次数

SignTool.exe偶尔因退出代码1而失败

作为构建系统的一部分,我们使用带证书的signtool.exe在构建二进制文件后对其进行签名.签名失败时偶尔(很难判断它什么时候会发生):

 error MSB3073: The command "C:\Program Files\Microsoft Visual Studio 8\SDK\v2.0\bin\signtool.exe" [...] exited with code 1.
Run Code Online (Sandbox Code Playgroud)

根据MSDN,退出代码为1意味着签署文件时出错.我可以验证文件没有签名.

我还注意到,有时候,时间戳部分会因为不同的错误消息而超时,尽管文件仍然会被签名(没有时间戳).

如何解决和修复这些看似随机,不一致的签名失败?

cruisecontrol.net digital-certificate signtool

8
推荐指数
1
解决办法
7026
查看次数

如何在visual studio 2008中对项目进行排序?

如何在解决方案文件夹中对项目进行排序.我有一个解决方案有3个解决方案文件夹,在那里我有几个类库,但它们似乎没有按名称排序,而是按创建.

有没有办法按名称对它们进行排序?(从vs 2008开始,而不是手动更改sln)

问候,M

sorting project solution visual-studio-2008 visual-studio

4
推荐指数
1
解决办法
1261
查看次数

用nAnt删除目录并排除子文件夹?

我正在寻找我的构建来删除目录的内容而不触及某个文件夹.以下是我正在尝试的内容,它甚至对我来说都是错误的......除了它在我运行它时它会爆炸的事实.我是否需要明确删除目录的内容,同时排除我的报告文件夹?

<delete includeemptydirs="true">
      <fileset dir="${PublishLocation}" >
        <exclude name="**Reports**"/>
      </fileset>
    </delete>
Run Code Online (Sandbox Code Playgroud)

干杯.

nant

4
推荐指数
1
解决办法
3608
查看次数

为什么不内联一个等效于明确声明它的方法?

编程中你有盲点吗?

我的意思是有一种常见的技术或语言功能,你不能真正习惯.好吧,我有一个(或者可能不止一个),我的用法是delegate.举手!还有谁对代表感到不舒服?说实话!

那么什么是代表?

由于我在大学的课程向我介绍了C,我知道函数指针.如果要将方法作为参数传递,函数指针很方便.所以在我看来,委托就像一个函数指针.找到了!我知道了.我还没有!

一个具体的场景?

我想从文本文件中删除与正则表达式匹配的任何行.假设我有一系列线条,那么这种List<T>方法RemoveAll似乎非常适合这个目的. RemoveAll期望将评估方法作为决定是否删除或保留列表元素的参数.它是:函数指针!

这里有代码吗?

public static int RemoveLinesFromFile(string path, string pattern)
{
  List<string> lines = new List<string>(File.ReadAllLines(path));
  int result = lines.RemoveAll(DoesLineMatch);
  File.WriteAllLines(path, lines.ToArray());
  return result;
}
Run Code Online (Sandbox Code Playgroud)

所以我正在寻找一个函数DoesLineMatch来评估一条线是否与一个模式相匹配.

你看到了问题吗?

RemoveAll期望代表Predicate<string> match作为参数.我会像这样编码:

private static bool DoesLineMatch(string line, string pattern)
{
  return Regex.IsMatch(line, pattern);
}
Run Code Online (Sandbox Code Playgroud)

但后来我收到一个错误"预期带有'bool DoesLineMatch(string)'签名的方法".我在这里错过了什么?

它有用吗?

这就是我最终使它工作的方式:

public static int RemoveLinesFromFile(string path, string pattern)
{
  List<string> lines = new List<string>(File.ReadAllLines(path));
  int result = …
Run Code Online (Sandbox Code Playgroud)

c# delegates inline c#-2.0

3
推荐指数
1
解决办法
597
查看次数