假设有一个解决方案,包含项目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,有什么方法可以在不手动操作的情况下完成此操作?
或者
对此有什么建议吗?
在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.
在处理开发宝石的"路径"时,我经历了一些痛苦.这是文件夹结构
生产代码:
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)
显然路径上的测试是错误的.
我的问题是,
编辑:
因为__FILE__只返回它所写文件的路径,所以我现在定义fname(参见@ ckruse的答案)就像我需要的每个文件中的函数一样.它有效,但不优雅.也许有人会在这方面找到比我更好的解决方案.如果是的话,请告诉我.:)