问题列表 - 第800页

TFSBuild.proj和导入外部目标

我们希望将重写的构建目标存储在外部文件中,并在TFSBuild.proj中包含该目标文件.我们有一个核心设置步骤,只需将导入行添加到向导创建的TFSBuild.proj即可获得这些额外步骤.

<Import Project="$(SolutionRoot)/libs/my.team.build/my.team.build.targets"/>
Run Code Online (Sandbox Code Playgroud)

我们无法对任何文件进行导入,$(SolutionRoot)因为在验证Import语句时,尚未从存储库中获取源.看起来TFS正在拉下第TFSBuild.proj一个而没有任何其他文件.

即使我们添加条件导入,如果存在,也不会导入源代码管理中的版本.将导入已存在于磁盘上的先前版本.

我们可以放弃使用源代码存储这些构建目标,但它是第一个移出源代码树的依赖项,因此我们不愿意这样做.

有没有办法:

  1. 告诉Team Build是否还有一些文件,以便Import正确评估这些语句?
  2. 覆盖那些Team Build目标,比如AfterCompile除了Import
  3. 最终在Team Build中运行构建目标,这些构建目标保留在它正在尝试构建的源代码下吗?

msbuild tfs team-build

7
推荐指数
1
解决办法
4433
查看次数

如何编写Windows批处理脚本以从目录中复制最新文件?

我需要将目录中的最新文件复制到新位置.到目前为止,我已经找到了forfiles命令的资源,这里有一个日期相关的问题,以及另一个相关的问题.我只是把这些碎片放在一起有点麻烦!如何将该目录中的最新文件复制到新位置?

batch-file forfiles

67
推荐指数
4
解决办法
17万
查看次数

VB.NET中的产量

C#有一个名为yield的关键字.VB.NET缺少这个关键字.Visual Basic程序员如何解决缺少此关键字的问题?他们是否实现了自己的迭代器类?或者他们尝试编码以避免需要迭代器?

产量关键字不强制编译器做幕后的一些编码.在C#中实现迭代器及其后果(第1部分)就是一个很好的例子.

.net vb.net

62
推荐指数
5
解决办法
3万
查看次数

如何获取枚举的基础值

我声明了以下枚举:

 public enum TransactionTypeCode { Shipment = 'S', Receipt = 'R' }
Run Code Online (Sandbox Code Playgroud)

如何从TransactionTypeCode.Shipment获取值'S'或从TransactionTypeCode.Receipt获取'R'?

简单地做TransactionTypeCode.ToString()会给出一个Enum名称为"Shipment"或"Receipt"的字符串,因此它不会切断芥末.

.net c# enums

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

使用AppDomain的好例子

我在采访中不断被问及AppDomains,我知道基础知识:

  • 它们是应用程序中的隔离级别(使它们与应用程序不同)
  • 他们可以有线程(使它们与线程不同)
  • 一个appdomain中的异常不会影响另一个
  • appdomains无法访问彼此的内存
  • 每个appdomain都可以有不同的安全性

我仍然没有得到使他们成为必要的东西.当你使用一个时,我正在寻找一个合理的具体情况.

回答:

  • 不受信任的代码
    • 核心应用程序受保护
      不受信任的/第三方插件被禁止通过隔离在具有安全限制的单独appdomain中来破坏共享内存和对注册表或硬盘驱动器的非授权访问,从而保护应用程序或服务器.例如ASP.NET和SQL Server托管组件代码
  • 可信代码
    • 稳定性
      应用程序分为安全,独立的特性/功能
    • 架构灵活性
      自由在单个CLR实例或每个程序中运行多个应用程序.

还要别的吗?

.net appdomain

46
推荐指数
3
解决办法
2万
查看次数

正则表达式和多个多字符分隔符

假设您有以下字符串:

white sand, tall waves, warm sun
Run Code Online (Sandbox Code Playgroud)

编写一个与分隔符匹配的正则表达式很容易,Java String.split()方法可以使用它来为你提供一个包含标记"white sand","tall waves"和"warm sun"的数组:

\s*,\s*
Run Code Online (Sandbox Code Playgroud)

现在说你有这个字符串:

white sand and tall waves and warm sun
Run Code Online (Sandbox Code Playgroud)

再一次,分割令牌的正则表达式很容易(确保你没有得到"和"字里面的"和"):

\s+and\s+
Run Code Online (Sandbox Code Playgroud)

现在,考虑这个字符串:

white sand, tall waves and warm sun
Run Code Online (Sandbox Code Playgroud)

是否可以正确编写与正确分隔符匹配的正则表达式,允许您将字符串拆分为与前两种情况相同的标记?或者,可以编写一个与令牌本身匹配的正则表达式并省略分隔符吗?(逗号两侧的任何数量的空格或"and"一词都应视为分隔符的一部分.)

编辑:正如评论中指出的那样,正确的答案应该在输入字符串的开头或结尾处有效地处理分隔符.在理想的答案应该能够采取像"白色的沙滩,高大的海浪和温暖的阳光和"字符串,并提供这些准确的三个令牌:

[ "white sand", "tall waves", "warm sun" ]
Run Code Online (Sandbox Code Playgroud)

......没有 额外的空标记或 任何令牌的开头或结尾都有额外的空格.

编辑:有人指出使用String.split()是不可避免的额外空标记,所以这已被删除作为"完美"正则表达式的标准.


感谢大家的回应!我试图确保我对所有提供可行的正则表达式的人进行了投票,而这些正则表达式本质上并不重复.丹的答案是最强大的(它甚至处理",白色的沙子,高大的波浪和温暖的阳光",合理地说,在"波浪"这个词之后用奇怪的逗号放置),所以我将他标记为已接受的答案.nsayer提供的正则表达式紧随其后.

regex

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

用于以通用方式返回序列的C++ API

如果我正在编写一个库,并且我有一个需要返回一系列值的函数,我可以这样做:

std::vector<int> get_sequence();
Run Code Online (Sandbox Code Playgroud)

但是,这需要库用户使用std :: vector <>容器,而不是允许它们使用他们想要使用的任何容器.此外,它还可以添加返回数组的额外副本(取决于编译器是否可以优化),这可能会对性能产生负面影响.

理论上,您可以通过创建一个带有开始和结束的模板化函数来启用任意容器(并避免不必要的额外复制):

template<class T_iter> void get_sequence(T_iter begin, T_iter end);
Run Code Online (Sandbox Code Playgroud)

然后,该函数将序列值存储在迭代器给定的范围内.但问题在于它需要您知道序列的大小,以便在序列之间存储足够的元素beginend存储所有值.

我想过一个界面如:

template<T_insertIter> get_sequence(T_insertIter inserter);
Run Code Online (Sandbox Code Playgroud)

这要求T_insertIter是一个插入迭代器(例如用它创建std::back_inserter(my_vector)),但这似乎太容易被滥用,因为编译器很乐意接受非插入迭代器,但在运行时会表现不正确.

那么设计返回任意长度序列的通用接口是否有最佳实践?

c++ generics api sequences

4
推荐指数
2
解决办法
822
查看次数

制作WinForms TextBox的行为与浏览器的地址栏相似

当C#WinForms文本框获得焦点时,我希望它的行为类似于浏览器的地址栏.

要查看我的意思,请单击您的Web浏览器的地址栏.您会注意到以下行为:

  1. 如果文本框之前没有聚焦,则单击文本框应选择所有文本.
  2. 鼠标按下并在文本框中拖动应该只选择我用鼠标突出显示的文本.
  3. 如果文本框已经聚焦,则单击不会选择所有文本.
  4. 以编程方式或通过键盘选项卡聚焦文本框应选择所有文本.

我想在WinForms中做到这一点.

最快的枪声:请在回答之前阅读以下内容!多谢你们.:-)

在.Enter或.GotFocus事件期间调用.SelectAll()将不起作用,因为如果用户单击文本框,则插入符号将被放置在他单击的位置,从而取消选择所有文本.

在.Click事件期间调用.SelectAll()将不起作用,因为用户将无法使用鼠标选择任何文本; .SelectAll()调用将继续覆盖用户的文本选择.

在焦点/输入事件输入上调用BeginInvoke((Action)textbox.SelectAll)不起作用,因为它违反了上面的规则#2,它将继续覆盖用户对焦点的选择.

.net user-interface textbox winforms

151
推荐指数
4
解决办法
12万
查看次数

Crystal Reports和LINQ

有没有人想出如何使用Linq to SQL的Crystal Reports?

.net linq reporting crystal-reports linq-to-sql

12
推荐指数
1
解决办法
1万
查看次数

Rails SSL要求插件 - 在重定向到https之前,不应检查您是否处于生产模式?

看一下ssl_requirement插件.

它不应该检查你是否处于生产模式?我们看到在开发模式下重定向到https,这似乎很奇怪.或者这是插件的正常行为?我认为它过去的表现不同.

ssl https ruby-on-rails

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