我是Wix(以及一般安装人员)的总菜鸟,所以请原谅我.
我的目标是能够遍历目录,搜索所有*,例如*.exe文件并将它们复制到预定义的目标文件夹.事实是,我不知道这些文件是什么以及它们的名字所以我不能在wxs文件中逐个输出它们...因此通配符.
现在,我最终得到了这样的东西:
...
<Directory Id='TARGETDIR' Name='SourceDir'>
<Directory Id='ProgramFilesFolder' Name='PFiles'>
<Directory Id='MyDir' Name='TestProj'>
<Component Id='MyComponent' Guid='PUT_GUID_HERE'>
<CopyFile Id="CopyFiles" DestinationProperty="DESTDIR" SourceName="*.exe" SourceProperty="SRCDIR" />
</Component>
</Directory>
</Directory>
</Directory>
...
Run Code Online (Sandbox Code Playgroud)
好吧,如果我只是从SRCDIR阅读,这是好的,但如果有子文件夹怎么办?如何查找具有特定扩展名的文件?或者还有另一种方法吗?
安装后删除相同文件也是一样的...
非常感谢您提供任何帮助!
我在Grails中使用webflow,我正在为它编写测试.现在,在内部我有一些错误,所以我在重定向之前向flash范围设置了一条消息:
...
if (some_condition) {
flash.message = "my error message"
return error()
}
...
Run Code Online (Sandbox Code Playgroud)
现在,我知道当我要在GSP页面中显示它时,我将访问flash消息
<g:if test="${message}">...
Run Code Online (Sandbox Code Playgroud)
而不是通常的
<g:if test="${flash.message}">...
Run Code Online (Sandbox Code Playgroud)
所以无论如何,我正在编写我的测试,我想知道如何测试消息的内容?通常,在控制器的正常操作中,我遵循这里所写的内容.但是,由于这是一个webflow,即使我检查controller.flash.message/controller.params.message/controller.message,我似乎也找不到该消息.我也试过看流量范围......
有关如何查看消息的任何想法吗?谢谢你!
有没有办法打破<g:each>?我有一个页面,其中我正在遍历列表,我必须确保选中一个复选框,如果这是存储在DB中的值.
为了使它更清晰,请考虑以下事项:
<g:each in=${list1}>
<g:each in=${list2}>
<g:if test="${list1.id == list2.id}">
<input type="checkbox" ... checked="checked" />
</if>
</g:each>
...
</g:each>
Run Code Online (Sandbox Code Playgroud)
其中list1是,例如Domain1.list()(即所有可能的值),list2是Domain2.find(...)(即SELECTED值)
在g:each中,我需要显示所有list1(因此,在每个内部之后的"......")带有一个复选框,但是我需要确保list2中的那些(用户选择的项目保存到DB中) )应相应检查(如果声明).
现在,如果在第一次迭代中更改了检查状态,我需要离开内部每个...任何方式来做到这一点?
谢谢!
我对下面的技术没有太多背景知识,所以任何帮助都会受到赞赏.如果不清楚,请随时提问.
我目前正在开展一个迁移项目,我们正在更新一些技术,包括:
现在,我们的应用程序部署在JBoss 4.x上并使用Hibernate 3.2.4.sp1.在旧的DB中,我们有许多自定义数据类型看起来像这样(对不起,本来喜欢把它放在表格格式中,但我不知道如何在这里......):
我们的DDL中的某些列使用自定义数据类型:
CREATE TABLE y (
our_column_name TYPE1,
...
);
Run Code Online (Sandbox Code Playgroud)
服务器启动时,我收到以下错误消息:
... javax.persistence.PersistenceException:org.hibernate.HibernateException:错误的列类型:our_column_name,expected:image
这不是旧设置中发生的事情.请注意我们定义的所有自定义数据类型,只有那些带有image和tinyint的数据类型存在问题; 其他人被认可,并没有错误.
我们在JConnect驱动程序上运行了跟踪,看起来它正在检索正确的数据类型,这就是为什么我现在专注于HibernateException.我见过几个与此类似的帖子(发生在不同的DB上),但基本上,他们给出了类似的解决方法:
像这样的一个站点,建议我们改变DB表的列以使用基本数据类型而不是自定义数据类型.我们通过将our_column_name的数据类型更改为来完成此操作image.完成此操作并重新启动服务器后,错误就会消失.但是,它没有解释导致问题的原因或原因.
这建议使用JPA注释@Column(columnDefinition='image').我们也试过这个,但它似乎对启动没有任何影响(即错误仍然发生).
在与#2相同的链接中,建议扩展SQL Dialect.但是,我不认为这是可行的 - 只有2个自定义数据类型(图像和tinyint)似乎导致我们的问题,所以这可能是矫枉过正.
此站点建议hibernate.hbm2ddl.auto=validate从persistence.xml中删除.没有尝试过,因为我们需要验证到位.
请改用数据类型"LOB"
我也尝试检查Hibernate的代码,因为这里引发了异常 - org.hibernate.mapping.Table.validateColumns(Table.java:261)这几乎指向了这一行:
boolean typesMatch = (col.getSqlType(dialect, mapping).startsWith(columnInfo.getTypeName().toLowerCase())) || (columnInfo.getTypeCode() == col.getSqlTypeCode(mapping));
Run Code Online (Sandbox Code Playgroud)
但是,Hibernate的API文档有点缺乏细节,所以我现在在跟踪这个问题时遇到了一些困难......
什么导致异常的任何想法?如果它在旧版本中工作,那么想知道Hibernate(或者Sybase)的哪些变化会导致这种情况发生?