小编Gre*_*reg的帖子

Visual Studio不会调试到引用的DLL(来自相同的解决方案)

我有一个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)

而且我没有例外.那很可疑......

debugging web-applications visual-studio-2008 visual-studio

11
推荐指数
2
解决办法
1万
查看次数

是否有任何版本控制系统具有"仅持续本地更改"功能?

我在玩git时遇到了这个问题,但我会问一般情况......

我只是想到了一个可能对版本控制很好的功能,但我不知道它是否存在或它是什么.我想称之为持续的局部变化.

假设我在svn中有一个配置文件,它有许多有用的不可重用的东西(因此必须在版本控制中),但有一个部分,每个人都需要自己编辑.可能是数据库配置,用户名和密码,或某些第三方软件的本地路径.你在这种情况下的选择是

  1. 在版本控制中编辑战争.只需不断更改文件,并希望其他人放弃编辑文件.

  2. 编辑它,但从不提交这些更改.他们只是坐在那里让你的"什么是新的/改变的"命令看起来很脏,你必须记住不要提交它.

  3. 模板吧.从版本控制中删除该文件,并在最后使用.template签入它的副本.在本地复制文件并将其重命名,并进行更改.

  4. 使用新的(虚构的?)持久性本地更改功能.进行更改然后发出record-changes-as-local-persistent命令,该命令会找出补丁,并在每次更新后重新应用补丁.

这个功能是否存在于任何地方(感觉就像git stash,但目的略有不同)?如果它不存在,有没有充分的理由呢?(有人想过这件事,并认为这是一个坏主意吗?)

git version-control

10
推荐指数
1
解决办法
635
查看次数

如何阻止visual studio在函数定义和立即调用之间插入空格?

我正在使用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的一些部分,即使只是在文件的最后一行,但这看起来很混乱,我想做得更好.

javascript jslint visual-studio-2010

10
推荐指数
3
解决办法
6663
查看次数

让用户指定RazorEngine模板有多危险?

我有类似邮件合并的功能,它采用模板,一些业务对象,并生成html,然后将其制作成PDF.

我正在使用RazorEngine来做模板+模型到html位.

如果我让用户指定模板,我会冒什么风险?是否有可能减轻任何风险?

例如,用户可以执行任意代码吗?(删除文件,更改数据库等?)有什么方法可以检测到这种事情吗?(我知道这通常是不可能的,但剃刀模板中的代码位应该是模型属性获取,或者可能是基于模型属性值的语句).

我基本上相信这里的用户(这是一个小型的私人项目),但是随着模板引擎的发展,这个应用程序似乎过于强大.

.net c# asp.net mailmerge razor

7
推荐指数
2
解决办法
1070
查看次数

将选项传递给击倒1.3中的模板

在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.

还有其他方法可以将任意数据传递到模板中吗?

javascript templating knockout.js knockout-templating

5
推荐指数
2
解决办法
4887
查看次数

如何检测字符串列表中的重复?

我有一系列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

也就是说,检测重复(可能是嵌套的).

string algorithm analysis

4
推荐指数
1
解决办法
1137
查看次数

为什么jenkins mercurial插件会忽略合并?

我有一个詹金斯的工作,看着一个mercurial存储库的'Live'分支.当我将一些更改合并到Live,commit和push中时,Jenkins不会触发构建.

查看mercurial polling日志,您可以看到

$ hg incoming --style <SomeFileUnderWorkspace> --no-merges
Run Code Online (Sandbox Code Playgroud)

我不敢相信这是一个错误,但也想不出你想要忽略合并的原因.

mercurial branching-and-merging jenkins

4
推荐指数
1
解决办法
856
查看次数

getopts值类和Template.Substitute不会(立即)一起工作

我有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意识仍在培养...)

python templates getopts

1
推荐指数
1
解决办法
1503
查看次数

运行'GC.Collect'修复了我的崩溃,但我不明白为什么

我有这段代码(来自诺基亚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似乎会使异常消失.

这里发生了什么,以及防止异常的正确方法是什么?

c# unmanaged nokia

1
推荐指数
1
解决办法
516
查看次数