我有一个Visual Studio 2008解决方案,有2个项目.DLL,A和Web应用程序,B.
B有一个项目引用A,而A.dll和A.pdb被复制到B的bin /目录.
一切都设置为在调试模式下编译.
我可以运行cassini webserver并调试Web应用程序B,但是当我在A.dll中调用一个方法时,按F11进入它不会进入它,它会跳过它.我想介入它.
任何想法,为什么我可能无法进入A的源代码?
我没有"只检查我的代码".
我可以在DLL中设置断点,它显示为一个红色圆圈(不是空心圆),但它永远不会被击中.
嗯......我刚刚修改了DLL中的代码,该代码正在被调用
throw new Exception("Hello");
Run Code Online (Sandbox Code Playgroud)
而且我没有例外.那很可疑......
我在玩git时遇到了这个问题,但我会问一般情况......
我只是想到了一个可能对版本控制很好的功能,但我不知道它是否存在或它是什么.我想称之为持续的局部变化.
假设我在svn中有一个配置文件,它有许多有用的不可重用的东西(因此必须在版本控制中),但有一个部分,每个人都需要自己编辑.可能是数据库配置,用户名和密码,或某些第三方软件的本地路径.你在这种情况下的选择是
在版本控制中编辑战争.只需不断更改文件,并希望其他人放弃编辑文件.
编辑它,但从不提交这些更改.他们只是坐在那里让你的"什么是新的/改变的"命令看起来很脏,你必须记住不要提交它.
模板吧.从版本控制中删除该文件,并在最后使用.template签入它的副本.在本地复制文件并将其重命名,并进行更改.
使用新的(虚构的?)持久性本地更改功能.进行更改然后发出record-changes-as-local-persistent命令,该命令会找出补丁,并在每次更新后重新应用补丁.
这个功能是否存在于任何地方(感觉就像git stash,但目的略有不同)?如果它不存在,有没有充分的理由呢?(有人想过这件事,并认为这是一个坏主意吗?)
我正在使用visual studio JSLint插件来保持我的javascript顺序,除了这个问题之外,它似乎工作得非常好.
如果我输入
x = (function () {
}())
Run Code Online (Sandbox Code Playgroud)
然后将分号放在最后,Visual studio将其更正为:
x = (function () {
} ());
Run Code Online (Sandbox Code Playgroud)
然后JSLint抱怨道 JS Lint: Unexpected space between '}' and '('.
显然,通过移除空间可以解决这个问题,但是可视化工作室在将空间放回原位方面非常持久.在函数内部的任何位置放置分号(大部分文件)都会导致VS将空间放回去.这开始变得烦人.
我已经尝试了使用visual studio Javascript编辑器设置('插入空格后......'),但似乎无法阻止它这样做.
可以表达的另一种方式是
x = (function () {
})();
Run Code Online (Sandbox Code Playgroud)
哪个VS独自离开,但JSLint说JS Lint: Move the invocation into the parens that contain the function.那里没有骰子.
有什么建议?我知道我可以关闭JSLint的一些部分,即使只是在文件的最后一行,但这看起来很混乱,我想做得更好.
我有类似邮件合并的功能,它采用模板,一些业务对象,并生成html,然后将其制作成PDF.
我正在使用RazorEngine来做模板+模型到html位.
如果我让用户指定模板,我会冒什么风险?是否有可能减轻任何风险?
例如,用户可以执行任意代码吗?(删除文件,更改数据库等?)有什么方法可以检测到这种事情吗?(我知道这通常是不可能的,但剃刀模板中的代码位应该是模型属性获取,或者可能是基于模型属性值的语句).
我基本上相信这里的用户(这是一个小型的私人项目),但是随着模板引擎的发展,这个应用程序似乎过于强大.
在knockoutjs 1.2.1我能做到:
<div data-bind="template: {name: 'Bar', foreach: persons, templateOptions:{fooMode: true} }"/>
<script id='Bar'>
{{if $item.fooMode}} FOO! {{/if}}
</script>
Run Code Online (Sandbox Code Playgroud)
我试图将其翻译为1.3.0beta
<div data-bind="template: {name: 'Bar', foreach: persons, templateOptions:{fooMode: true} }"/>
<script id='Bar'>
<span data-bind="if: $item.fooMode">FOO!</span>
</script>
Run Code Online (Sandbox Code Playgroud)
但新的本机模板引擎不尊重templateOptions.
还有其他方法可以将任意数据传递到模板中吗?
我有一系列SQL调用,我想用它来检测循环(因此不必要的重复sql调用),但它让我想到了这个更普遍的问题.
给出一个清单,比方说
[a,b,c,b,c,a,b,c,b,c,a,b,b]
有什么方法可以把它变成
a,[[b,c]*2,a]*2,b*2
要么, [a,[b,c]*2]*2,a,b*2
也就是说,检测重复(可能是嵌套的).
我有一个詹金斯的工作,看着一个mercurial存储库的'Live'分支.当我将一些更改合并到Live,commit和push中时,Jenkins不会触发构建.
查看mercurial polling日志,您可以看到
$ hg incoming --style <SomeFileUnderWorkspace> --no-merges
Run Code Online (Sandbox Code Playgroud)
我不敢相信这是一个错误,但也想不出你想要忽略合并的原因.
我有python代码类似于:
from string import Template
import optparse
def main():
usage = "usage: %prog options outputname"
p = optparse.OptionParser(usage)
p.add_option('--optiona', '-a', default="")
p.add_option('--optionb', '-b', default="")
options, arguments = p.parse_args()
t = Template('Option a is ${optiona} option b is ${optionb}')
print t.substitute(options)
Run Code Online (Sandbox Code Playgroud)
但这给了我
AttributeError: Values instance has no attribute '__getitem__'
Run Code Online (Sandbox Code Playgroud)
因为options是值而不是字典.
我如何巧妙地完成这项工作?
(欢迎任何其他建议,我的pythonic意识仍在培养...)
我有这段代码(来自诺基亚PC连接3.2示例代码,在C#中):
DAContentAccessDefinitions.CA_FOLDER_INFO folderInfo =
new DAContentAccessDefinitions.CA_FOLDER_INFO();
folderInfo.iSize = Marshal.SizeOf(folderInfo); //(32)
IntPtr bufItem = Marshal.AllocHGlobal(folderInfo.iSize);
//I often get a AccessViolationException on the following line
Marshal.StructureToPtr(folderInfo, bufItem, true);
Run Code Online (Sandbox Code Playgroud)
如果我GC.Collect()在开始时运行,那么我没有得到AccessViolationException.但除非必要,否则我不想放慢这个功能.我尝试GC.Keepalive过各种各样的地方,但没有成功.
CA_FOLDER_INFO 定义为:
[StructLayout(LayoutKind.Sequential, CharSet=CharSet.Unicode)]
public struct CA_FOLDER_INFO
{
public int iSize;
public int iFolderId;
public int iOptions;
public string pstrName;
public string pstrPath;
public int iSubFolderCount;
public IntPtr pSubFolders;
public IntPtr pParent;
}
Run Code Online (Sandbox Code Playgroud)
在这种情况下,我不需要任何一个字符串,并且更改它们的定义IntPtr似乎会使异常消失.
这里发生了什么,以及防止异常的正确方法是什么?