当32位注册表项位于注册表中的Wow6432node时,OpenSubKey()和其他Microsoft.Win32注册表函数是否在64位系统上返回null?
我正在研究一个单元测试框架,它从.NET库调用OpenSubKey().
我的开发系统是安装了Visual Studio 2008 SP1和Windows 7 SDK 的Windows 7 64位环境.
我们单元测试的应用程序是一个32位应用程序,因此注册表是虚拟化的HKLM\Software\Wow6432node.当我们打电话:
Registry.LocalMachine.OpenSubKey( @"Software\MyCompany\MyApp\" );
Run Code Online (Sandbox Code Playgroud)
返回Null,但明确说明在这里工作:
Registry.LocalMachine.OpenSubKey( @"Software\Wow6432node\MyCompany\MyApp\" );
Run Code Online (Sandbox Code Playgroud)
根据我的理解,此功能应该与32位或64位环境无关,应该知道跳转到虚拟节点.
更奇怪的是,在我们的应用程序的编译和安装版本中完全相同的调用在同一系统上正常运行并且正在运行必需的注册表项; 也被放入HKLM\Software\Wow6432node.
我该怎么办?
在生产模式下,rails似乎无法从资产管道中找到任何预编译资产.
我在CentOS上使用RVM运行的rails 3.2.0和ruby 1.9.3.没有其他Web服务器与此应用程序一起运行.该应用程序最近才更新为使用资产管道,因为它最初是一个rails 3.0应用程序.
跑完之后
rake assets:clean
rake assets:precompile
Run Code Online (Sandbox Code Playgroud)
正如我所料,我看到公共/资产中的哈希内容.文件末尾的哈希值与我在页面源中看到的哈希值相匹配.
但是在运行时,这是我看到Rails尝试提供的每个资产的内容:
Started GET "/assets/application-892c6227e631daf9a8e041b1d4d002ec.css" for 75.149.58.169 at 2012-03-14 11:42:43 -0700
ActionController::RoutingError (No route matches [GET] "/assets/application-892c6227e631daf9a8e041b1d4d002ec.css"):
Run Code Online (Sandbox Code Playgroud)
我不是指每个资产所在的文件夹; 所有对资产的引用都是这样的:
//css:
.class {
background: url(asset.png) no-repeat;
}
//erb:
<%= image_tag "asset.png" %>
<%= link_to "page", :class => "class" %>
Run Code Online (Sandbox Code Playgroud)
production.rb中的资产管道相关设置:
config.serve_static_assets = false
config.assets.enabled = true
config.assets.compress = true
config.assets.debug = false
config.assets.compile = false
config.assets.digest = true
Run Code Online (Sandbox Code Playgroud)
最后,来自config/application.rb的资产设置:
config.assets.enabled = true
config.assets.version = '1.0'
Run Code Online (Sandbox Code Playgroud)
启动rails服务器进程的用户对公共/资产具有读,写和执行权限,因此我认为这不是权限问题.我错过了配置步骤吗?
编辑
我注意到没有错误声明资产没有预编译,因此我尝试通过在主机路径的末尾附加"/assets/application-892c6227e631daf9a8e041b1d4d002ec.css"来从网页访问样式表:
http://www.myapp.com"/assets/application-892c6227e631daf9a8e041b1d4d002ec.css"
Run Code Online (Sandbox Code Playgroud)
这工作,样式表打开.
有没有人知道如何正确隐藏intellisense中的类,方法和属性,同时保留调用它们的能力; 所以它们不出现在从类型库生成的互操作程序集中?
我正在为自动化测试编写API钩子,我们不希望它们暴露给消费者.这看起来很适用于我们的应用程序自带的内置SaxBasic编辑器,但是当引用添加到我们的互操作程序集时,无法隐藏对象,方法和属性.
这是我试图隐藏这些内容的一个例子; 已经尝试了各种排列,提前感谢!
[
object,
uuid(guid),
helpstring("help"),
version(ver),
dual,
nonextensible,
oleautomation,
pointer_default(unique)
]IApplication.VisibleObj
interface IObj : IDispatch
{
//tried [hidden] here, no luck
[propget, id(91001), helpstring("Help str. Available as of Object Model Version X.X.X."), hidden]//again tried [hidden] here, no luck
HRESULT Obj([out, retval] IObj** ppObj);
}
Run Code Online (Sandbox Code Playgroud) 我正在编写一个控制器,旨在将Magento的目录搜索功能暴露给API调用.使用具有默认REST api的过滤器不会返回与Magento站点上可用的搜索功能相同的质量结果.
我现在已经挖掘了几天了,我在Stack Overflow和Magento讨论板上看到的各种方法似乎都没有用,我是否缺少一个步骤?
这两种方法都返回null,我似乎无法弄清楚原因:
$query = Mage::helper('catalogSearch')->getQuery();
$searcher = Mage::getSingleton('catalogsearch/advanced')->addFilters(
array('name'=> $query->getQueryText(),
'description' => $query->getQueryText()));
$obj = new stdClass();
$obj->query = $query->getQueryText();
$obj->results = $searcher->getProductCollection(); //nothing returned
Run Code Online (Sandbox Code Playgroud)
从这个SO问题修改的方法似乎也不起作用:
$query = Mage::helper('catalogSearch')->getQuery();
$obj = new stdClass();
$obj->query = $query->getQueryText();
if ($query->getQueryText()) {
if (Mage::helper('catalogSearch')->isMinQueryLength()) {
$query->setId(0)->setIsActive(1)->setIsProcessed(1);
} else {
if ($query->getId()) {
$query->setPopularity($query->getPopularity()+1);
} else {
$query->setPopularity(1);
}
$query->prepare();
}
$obj->results = $query->getProductCollection(); //null
}
Run Code Online (Sandbox Code Playgroud)
成功调用Magento的目录搜索模块并获取结果集合后,我缺少哪些步骤?