小编Yua*_*Guo的帖子

如何从 csproj 生成 nuspec 中的依赖项(或 nupkg 在其元数据中包含依赖项)

假设有一个解决方案,包含项目A、B。

  • A 以传统方式引用 B。(添加引用 -> 项目 -> B)

  • B 仅依赖于 .NET 框架库。

这是我所做的:

nuget pack A.csproj
Run Code Online (Sandbox Code Playgroud)

它将生成 A.nupkg,无需

<dependencies>
      <dependency id="B" version="3.0" />
</dependencies>
Run Code Online (Sandbox Code Playgroud)

我想要的是 A.nupkg在其元数据中包含对 B 的依赖。

我知道你可以在A.csproj同一个文件夹下放置一个A.nuspec,并在A.nuspec中设置对B的依赖。但生成和维护需要人工成本。由于 A.csproj 知道 B,有什么方法可以在手动操作的情况下完成此操作?

或者

对此有什么建议吗?

c# continuous-integration dependencies nuget

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

有没有立即触发WaitOne()超时的方法?

在Microsoft .NET中,方法WaitOne()

public virtual bool WaitOne(
TimeSpan timeout
)
Run Code Online (Sandbox Code Playgroud)

true如果当前实例收到信号,则返回; 否则,false.

我的问题是,false即使超时点尚未到来,有没有办法让它返回?
或者
换句话说,WaitOne()即使没有真正的超时点,有没有办法立即触发超时?

更新:

该项目基于.NET 3.5,因此ManualResetEventSlim可能无法运行(在.NET 4中引入).无论如何,谢谢@ani.

.net c# windows multithreading

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

在开发gem时读取文件(在lib下)的最佳实践是什么?

在处理开发宝石的"路径"时,我经历了一些痛苦.这是文件夹结构

生产代码:

lib/gem_name/foo/templates/some_template.erb
lib/gem_name/foo/bar.rb
Run Code Online (Sandbox Code Playgroud)

测试代码:

test/gem_name/foo/bar_test.rb
Run Code Online (Sandbox Code Playgroud)

在bar.rb中,我通过以下方式阅读模板:

File.read("templates/some_template.erb") => Errno::ENOENT: No such file or directory
Run Code Online (Sandbox Code Playgroud)

当我在RubyMine中的bar_test.rb中运行单元测试时,它给出了错误:

Errno::ENOENT: No such file or directory - D:/.../test/gem_name/foo/templates/some_template.erb
Run Code Online (Sandbox Code Playgroud)

显然路径上的测试是错误的.

我的问题是,

  1. 如何处理这个问题?
  2. 在开发宝石时处理这种路径问题的最佳实践是什么?

编辑:
因为__FILE__只返回它所写文件的路径,所以我现在定义fname(参见@ ckruse的答案)就像我需要的每个文件中的函数一样.它有效,但不优雅.也许有人会在这方面找到比我更好的解决方案.如果是的话,请告诉我.:)

ruby gem rubymine

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