如果我编译带有CL.EXE C语言DLL源,我怎么设置文件属性,包括文件版本产品名称,产品版本,版权等等,这样我就可以在Windows浏览这些属性?

在用C#编写的.NET应用程序中,我可以使用汇编属性来完成此操作[assembly: AssemblyVersion("1.2.3.4")].我如何在C语言项目中执行此操作?
我正在使用.wxl文件来自定义WixUI_FeatureTree中各种对话框中的文本.如何插入换行符?
这不起作用:
<WixLocalization Culture="en-us" xmlns="http://schemas.microsoft.com/wix/2006/localization">
<String Id="WelcomeDlgTitle">{\WixUI_Font_Bigger}Welcome to the Setup Wizard for\r\n[ProductName]</String>
</WixLocalization>
Run Code Online (Sandbox Code Playgroud)
如果我试试,我会在对话框的文本中得到"\ r \n".
我读到了关于Relaxer的事情,它将.RNG编译成Java类.BBut网站http://www.relaxer.org/已经死了.
Q1:
Relaxer活着吗?这是真的吗,有效吗?从.RNG生成Java类是否合理?
Q2:
是否有适用于.NET的Relaxer?是否有一个工具可以从RelaxNG模式生成C#类?
问题3: Javascript是否有松弛剂?
而且,最后
Q4:
RelaxNG活着吗?它可行吗?在REST/JSON世界中相关且有用吗?人们还在使用它还是会褪色,这个好主意已经被淘汰了?我知道这是主观的,但我想知道你的评估.我在stackoverflow上看到只有9或10个RelaxNG Q,所以我质疑这项技术的相关性.如果不是RelaxNG,那又怎样?WADL? 什么都没有?
有关相关问题,请参阅维护JavaScript和C#对象模型之间的一致性.
我已经使用了emacs很长一段时间,但我还没有跟上一堆功能.其中一个是speedbar,我现在只是简单地研究过.另一个是imenu.这两个都在in-emacs-how-can-can-between-functions-in-the-current-file中被提及 ?
使用imenu,我可以跳转到我正在使用的模块中的特定方法.但是在我获得选择(使用自动完成)方法名称的选项之前,我必须协商一个解析层次结构.
它是这样的.我键入M-x imenu然后我可以选择Using或Types.Using选项允许我跳转到C#文件顶层的任何using语句(类似于Java模块中的import语句,对于那些不了解C#的人来说).不是很有帮助.我选择类型.然后我必须选择命名空间和类,即使源模块中只有一个.那时我可以在变量,类型和方法之间进行选择.如果我选择方法,我最终会得到可供选择的方法列表.我遍历的层次结构看起来像这样;
Using
Types
Namespace
Class
Types
Variables
Methods
method names
Run Code Online (Sandbox Code Playgroud)
只有在我达到第5级后才能选择我真正想要跳到的东西:一种特殊的方法.
Imenu对源模块似乎很聪明,但有点难以使用.我做错了吗?
我在C#代码上使用Flymake,在Windows上使用emacs v22.2.1.
Flymake的东西一直很适合我.对于那些不知道的人,您可以阅读flymake的概述,但快速的故事是,flymake重复构建您当前正在后台处理的源文件,以进行语法检查.然后,它会突出显示当前缓冲区中的编译器警告和错误.
Flymake最初并不适用于C#,但是我"修补了它",现在效果很好.如果您在emacs中编辑C#,我强烈建议您使用flymake.
我唯一的问题是UI.Flymake很好地突出显示错误和警告,然后使用包含完整错误或警告文本的工具提示插入"叠加".如果我将鼠标指针悬停在代码中突出显示的行上,则会弹出叠加工具提示.
替代文字http://i42.tinypic.com/qqu0ja.jpg
但正如您所看到的,叠加工具提示已被剪裁,并且无法正确显示.
Flymake似乎正在做正确的事情,它是覆盖部分似乎被打破.,叠加似乎做对了.这是错误显示的工具提示.
不要覆盖提示在Emacs的Windows正常工作?
我在哪里解决这个问题?
经过一些研究,我发现效果可以证明 (tooltip-show really-long-string)
它与叠加层或flymake无关.
我有一个这样的列表:
'(("Alpha" . 1538)
("Beta" . 8036)
("Gamma" . 8990)
("Beta" . 10052)
("Alpha" . 12837)
("Beta" . 13634)
("Beta" . 14977)
("Beta" . 15719)
("Alpha" . 17075)
("Rho" . 18949)
("Gamma" . 21118)
("Gamma" . 26923)
("Alpha" . 31609))
Run Code Online (Sandbox Code Playgroud)
如何计算列表中每个元素的汽车中术语的总出现次数?基本上我想要:
(("Alpha" . 4)
("Beta" . 5)
("Gamma" . 3)
("Rho" . 1))
Run Code Online (Sandbox Code Playgroud)
不,这不是功课.我还没有"在Lisp中思考"的事情.
在C#中,我会使用LINQ来执行此操作.我也可以在lisp中使用while循环等,但我想这样做的方式似乎过于复杂.
编辑
这就是我所拥有的:
(defun count-uniq (list)
"Returns an alist, each item is a cons cell where the car is
a unique element of LIST, and the …Run Code Online (Sandbox Code Playgroud) 如果我使用不同的var语句,如
function stretchDiv(){
var wh = $(window).height();
var sz2 = wh - ((paddingTop + paddingBottom) + (mainTop + 2) * 2);
// the scrollbar happens only when the height of the elt is constrained
var sz3 = sz2 - outTop - 2;
$('#out').css({'height': sz3 + 'px'});
}
Run Code Online (Sandbox Code Playgroud)
然后JSLint抱怨,告诉我将第二个和第三个与前一个结合起来.

如果我遵循这个建议,JSLint很高兴,但是Emacs的内置js-mode.el(Emacs v23.2)并没有var按照我想要的方式缩进附加声明.此外,它不会对其他变量执行字体锁定.看到:
function stretchDiv(){
var wh = $(window).height(),
sz2 = wh - ((paddingTop + paddingBottom) + (mainTop + 2) * 2),
// the scrollbar happens only …Run Code Online (Sandbox Code Playgroud) 我想在C#中创建一个COM对象,并通过JScript的IDispatch使用它.那部分非常简单.
我还想在COM对象上实现简单的回调,类似于在浏览器中可用的XmlHttpRequest对象公开的事件.该模型允许Javascript附加如下事件处理程序:
var xmlhttp = new ActiveXObject("MSXML.XMLHTTP");
xmlhttp.onReadyStateChange = function() {
...
};
Run Code Online (Sandbox Code Playgroud)
我希望我的客户端JScript代码看起来像这样:
var myObject = new ActiveXObject("MyObject.ProgId");
myObject.onMyCustomEvent = function(..args here..) {
...
};
Run Code Online (Sandbox Code Playgroud)
C#代码是什么样的?我想要一般情况 - 我希望能够将参数传递回Javascript fn.
我已经看过如何在点击时用JavaScript编写用C#引发事件的ActiveX控件?,但那里的答案看起来实际上很复杂,而且使用起来很复杂.
从这篇文章中,似乎XMLHttpRequest事件不是COM事件.这onreadystatechange是一种类型的财产IDispatch.当脚本客户端将该属性设置为函数时,JScript将其封送为IDispatch对象.
剩下的唯一问题是从C#调用IDispatch.
假设我有这样的XML:
<graph label="Test" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:cy="http://www.cytoscape.org" xmlns="http://www.cs.rpi.edu/XGMML" directed="1">
<foo>...</foo>
</graph>
Run Code Online (Sandbox Code Playgroud)
第一个元素名称及其所有属性都出现在一行中.
我已经看到如何使用lxml打印元素树,代码如下:
from lxml import etree
...
def prettyPrintXml(filePath):
assert filePath is not None
parser = etree.XMLParser(resolve_entities=False, remove_blank_text=True,
strip_cdata=False)
document = etree.parse(filePath, parser)
print(etree.tostring(document, pretty_print=True, encoding='utf-8'))
Run Code Online (Sandbox Code Playgroud)
...但是使用它,每个元素都出现在一行上.
是否有一个神奇的咒语告诉漂亮的打印机在元素属性之间插入换行符,例如,行长度不超过80个字符?
我希望结果看起来像这样:
<graph label="Test"
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:cy="http://www.cytoscape.org"
xmlns="http://www.cs.rpi.edu/XGMML" directed="1">
<foo>...</foo>
</graph>
Run Code Online (Sandbox Code Playgroud)
ps:我不想诉诸subprocess和xmllint
如今,赋予实用程序应用程序"自动更新"功能似乎是基本的好方法.
我正在考虑像Reflector或Paint.NET这样的应用程序,主动告诉你"嘿,有一个更新的版本可用.想下载吗?"
问:是否有人知道可以由来自Codeplex项目的应用程序使用的通用框架,如果有更新版本,则提醒用户,并可选择直接从CodePlex下载并安装新版本?
显然有ClickOnce和Updater Block,我自己编写了实用程序类,用于winforms和WPF,其他人也编写了类似的东西,但所有这些都要求app发布者在Codeplex之外发布应用程序,命令自动更新工作.我想象的是直接从codeplex下载的东西.
编辑
我可以想象这样一个框架可能会强加一个关于如何将应用程序发布到codeplex的结构.它可能需要与每个版本一起发布"manifest.xml",并且该清单文件内部可能是应用程序版本,时间戳,发行版的注释,最新二进制下载的URL等等.
似乎有人会已经建立了这个.