编辑3.5(意味着将项目3放在上一次更新中,但忽略了.唉......)
看看程序集注册如何解决我的问题并查看我能从ProcExplorer跟踪中推断出的有限信息让我对一些事情做出了一些结论.没有解决方案,只有一些推论
1.微软希望在某些时候允许加载Framework 2.0程序集.我做出这样的推断是基于如果它们完全受限于排除它们的概念,验证可能会失败并立即检查程序集的框架元数据.如果在2008R2中加载4.0程序集也会失败 - 相反的是严厉的和特定的错误,并说Thou Shalt Not Do.
2.如果我执行升级到包含2.0程序集的2008R2数据库,则会加载程序集,并在SQL 2012数据库中触发其中的函数.因此,执行基于2.0的程序集的能力非常强.让它们通过加载器是诀窍 - 因此强化了我的信念,即发现一个突然在CLR中启用2.0框架组件的补丁或SP并不会让我感到惊讶.
3. 我相信,无论是通过故意更改还是错误,PERMISSION _ SET = UNSAFE所暗示的某些验证语义在SQL2012中已经发生了变化.我的经验使我相信SQL Server的CLR Verifier的早期版本执行了相当于指定PEVERIFY /MDwhen的PERMISSION_SET = UNSAFE时间(不检查非托管指针之类的东西),以及PEVERIFY /IL何时不执行.但是,在我看来,在SQL 2012中,CLR Verifier执行的PEVERIFY /IL 不管 UNSAFE权限标志如何.我很想知道是否有人可以验证这个理论*
EDIT2
在继续研究这个问题之后,我还没有找到一个解决方案,不能改进项目以使用微软几年前创建的现已弃用的System.Data.OracleClient提供程序.此外,进一步的研究和电子邮件让我相信至少有一两个"电池未包含"的注意事项,关于SQL 2008R2和SQL 2012之间的程序集验证的更改 - 而这个程序集似乎正好指向了这一点.关于SQLCLR程序集注册问题的一些博客帖子已经导致断言验证过程中没有任何内容发生变化,但是在两个数据库之间注册相同的程序集已经产生了另外一个令人费解的问题.我无法找到SQLServer如何验证程序集,所以此刻,我继续在黑暗中搜索一些解决方案(好吧,完全)...*
我们的MS SQL Server数据库中存在一个长期存在的SQLCLR项目,该项目对Oracle数据库进行各种关键查询.该项目已经运行了大约六年,已经从SQL 2005中的32位程序集迁移到MS SQL Server 2008 R2的64位程序集.
尽管MS SQL 2012升级顾问仅指出了SQLCLR迁移对某些地理类型的一般性问题,但我怀疑这种迁移可能确实存在问题.果然,我发现将这个项目迁移到SQL Server 2012现在正在呈现我担心的难题.
当试图注册这个相同的64位Oracle.DataAccess.dll(2.112.1.0)时,它已经在SQL Server 2008R2(及其祖先)中幸福地生活了一段时间,数据库现在建议程序集"验证失败".编辑:我的理解一直是授予UNSAFE权限的程序集不会通过验证检查.这不正确吗?
以下是错误响应的摘录:
[ : Oracle.DataAccess.Client.OracleDatabase::Startup][mdToken=0x6000021][offset 0x00000048][found unmanaged pointer][expected readonly address of value 'Oracle.DataAccess.Client.OpoConValCtx'] Unexpected type …Run Code Online (Sandbox Code Playgroud) 我有一种可怕的感觉,这种情况可能会减少到对我而言,以森林为树的情况,如果是这样的话,请提前告诉我.但对于我的生活,我只是不明白为什么以下行不会在C#中编译,假设myRegEx是一个RegEx对象并且myString是调用该Match方法的目标,如下所示:
String[] results = myRegEx.Matches(myString)[0].Groups["Group1"].Captures.Select(x => x.Value).ToArray<String>();
Run Code Online (Sandbox Code Playgroud)
该.Captures引用应该让我CaptureCollection实现IEnumerable,并且IEnumerable提供了Select一个转换的扩展方法,就像我在这里尝试的那样,Value为集合中的每个项目捕获属性并将其推入字符串数组.
然而,编译器咆哮着我
'System.Text.RegularExpressions.CaptureCollection不包含'Select'的定义,也没有扩展方法'Select'接受System.Text.RegularExpression.CaptureCollection'类型的第一个参数.
我可以通过调用.Cast<Capture>()Captures对象中的方法来解决这个问题,然后使用转换来调用select,而转换又会访问Value属性,但考虑到对象已经是 Capture对象,这似乎有点傻.
我究竟做错了什么?非常感谢你指出我本来应该是一个非常明显的疏忽.
场景:AD域中的Windows服务器仅使用SVNSERVE(没有Apache)托管Subversion存储库,而不是 VisualSVN.
目标:通过SASS通过GSSAPI将用户身份验证到Subversion存储库,通过Kerberos验证到Windows域.
多个站点中频繁发布的帖子表明,在此配置中,用户通常无法获得"无法获取SASL机制列表".我没见过任何实际运行的实例.有没有人有这个运行?
我问这个问题是因为2011年在Gentoo论坛上发帖,其中正是在这个场景中的某个人审查了相关的源代码压缩包并得出结论,虽然这种配置可能一度有效,但它所需的文件不再是在源头.
GEntoo论坛讨论,海报声称svnserve + gssapi + sasl曾一度工作,但不再有.
现在,我并不认为这种说法是准确的,但我确实知道自己陷入了同样的困境,而且我还没有看到任何声称对此类设置声称"胜利"的帖子.如果有,请告知详细信息!
提前谢谢了.
我有Visual Studio 2012 Ultimate的Windows 7/64 Pro包,修改为Update 4,但有问题.
在过去的一周里,我开始遇到一个原本可以容忍的问题,但是现在已经变得更糟糕了,无法解决问题,而且我需要一些(任何?)建议.事实证明,这比微软的问题更适合于纯粹的编程问题,但我想也许有人可能已经遇到过这个问题,因此我在这里采取行动.
问题:VS2012 IDE,启动后不久,没有解决方案或项目加载,进入"无响应"模式,永远不会返回.然而,更糟糕的是,当发生这种情况时,它会阻止操作系统启动任何 32位进程,并且64位进程并不完全响应.
这在上周只发生过一次或两次,因此我认为这是一个奇怪/一次性的情况,并不认为这是一个长期问题.今天成了慢性病.虽然在过去的几天里这种症状很不寻常,但是今天它让我无法全天在VS2012工作.VS2012 IDE将在短时间内响应,然后抓紧.
这样做对问题的性质了一些研究,并观察直到我开始VS2012它没有发生,我开始认识到它必须与原生VS可执行文件或与它一起启动辅助devenv.exe的关联.然而,真正的罪魁祸首是Microsoft.VisualStudio.Web.Host.exe可执行文件,它提供导致问题的VS托管环境的Web版本.
当VS2012 IDE占用时,杀死Web.Host.exe进程会立即释放IDE一段时间,并允许任何"排队"的32位应用程序启动.但是,一旦Web托管进程重新启动,症状就会恢复.
我已经将VS2012更新到Update 4,并执行了VS2012的修复安装,但没有任何改变.事件日志中没有错误表明硬件问题(例如硬盘驱动器故障)或任何其他较低级别/有机操作系统问题.在Web主机进程方面确实没有配置(我知道),所以没有完全重新安装VS2012,我不知道还有什么可以尝试.
我在Microsoft Connect论坛中看到了与此错误略有相似之处,但实际上症状并不相同,并且规定的修复(VS2012直到更新4)无济于事.
编辑: 附加信息次要比特 -可能在这种情况下证明的"X因素"的唯一不寻常的因素是近期开关TFS -在过去一周内-这个问题的发生令人震惊的一致.但是考虑到SCC提供商对内容的兴趣不如支持Intellisense,调试等等,我很难说服自己会成为一名玩家.然而,在这一点上,谁知道.
任何建议赞赏.
我是Subversion的完全新手,但我试图超越SourceSafe的可怕阴影.所以我正在学习,试着教自己什么是什么,而且我遇到了一些我还不太了解的障碍.
SVN 1.7.3已在本地Linux机器上启动并运行.AnkhSVN安装在我的VS 2010设置中.VS/AnkhSVN可以与我的存储库通信.所以我开始尝试一些非常简单的Console项目来开始.我按照目前为止发现的指南中的建议创建了trunk,branches和tags目录.
我创建了一个新的Console解决方案,并允许Ankh在我的存储库中在推荐的"trunk"文件夹下创建该项目.在Program.cs中添加"Hello,World"行后,我将更改提交给trunk.这工作......到目前为止,这么好......
我现在想假装我正在私人分支机构工作,所以我从"trunk"和"Head/Latest"版本中选择Subversion-> Branch Project ...,选中"创建后切换到分支".这似乎进展顺利.
问题1.
现在这里的事情变得冒险了.我决定将单个源文件添加到我的私有分支中的项目中,添加该文件,但我无法将文件从我的私有分支移动到trunk.合并/重新整合不起作用.更新不起作用.开关不起作用.现在,在尝试从分支切换到主干后,VS告诉我我的项目文件已损坏且无法加载.
显然,我做了一件非常糟糕的事,但我不知道是什么.看来我只需要获得一个主干工作副本,然后进行合并,但是如何在我的VS项目文件夹设置中执行此操作?
问题2
我的下一个问题或问题可能是问题1的一部分,它是理解如何在Visual Studio端构建Subversion管理的项目.在Unix方面我更清楚你可以将项目拉到本地文件夹,但它根本不清楚VS项目的典型目录结构应该如何受到Subversion的影响.是否应该在本地Visual Studio框中复制主干和分支文件夹?如果我从主干"切换"到专用分支(反之亦然),是相应文件应该进入同一组VS文件夹的意图,还是应该有分支和主干的相应集合?
问题3 这更像是一个新手SVN问题,但当SVN告诉我存在冲突时,我还不知道如何解决它们.ankhSVN插件是否具有解决冲突的特殊工具,或者我是否需要使用完整的svn工具在主机服务器上修复它们?如果是这样,那么"最典型"的冲突是什么?
我编写了一个简单的C#应用程序,使用SharpSVN在尝试添加之前查询文件的状态.我在各个地方为此目的看到的示例涉及调用SvnClient的GetStatus方法,将完整路径和out参数传递给SvnStatusEventArgs的集合.
我的理解是,对于一个文件,GetStatus应该返回一个SvnStatusEventArgs集合,其集合只有一个,其状态包括NotVersioned,Missing,Normal等.
在我的应用程序中,我将GetStatus调用到源代码管理下的文件时返回Collection计数为零.
SvnClient foo = new SvnClient();
Collection<SvnStatusEventArgs> statuses;
foo.GetStatus("C:\\Temp\\svnu\\Program.cs", new SvnStatusArgs {Depth = SvnDepth.Empty}, out statuses);
Run Code Online (Sandbox Code Playgroud)
statuses.Count的值为零,当我期望1具有状态[0] .LocalContentStatus值为Normal时.这种期望是不正确的?对于引用不在源代码管理中的文件的路径的调用,该调用使用状态[0] .LocalContentStatus值NotVersioned.
该路径被验证为工作副本,事实上,Program.cs文件已在Subversion中登记.我正在运行SharpSVN版本1.7005.2163.13448和VS2010.
非常感谢您清除我明显的困惑.
编辑更多信息:修改但不提交Program.cs后,这个相同的代码片段现在返回一个LocalContentStatus为"Modified"的状态值.提交文件后,返回原始行为(无返回状态值).
package com.j;
public class Program {
public static void main(String[] args) {
System.out.println(Puzzel.class.getName().replaceAll(".", "/")
+ ".class");
System.out.println(Program.class.getName());
}
Run Code Online (Sandbox Code Playgroud)
}
在上面的程序中,我期待输出com/j/Program.class
但它来了//////.class y?
我有一个与 Windows 7 上 IE11 中特定于 MS 的伪元素的 CSS 问题相关的特殊问题。
为了消除 IE11 表单中大多数 INPUT 元素右侧边缘的“清除/X”按钮,我添加了一个简单的 CSS 样式规则,如下所示:
INPUT::-ms-clear{
display: none;
}
Run Code Online (Sandbox Code Playgroud)
这似乎工作得很好 - 直到有人遇到有问题的网站并看到这种样式应该删除的按钮。所以我开始用 IE11 开发工具调试这个问题,当我加载有问题的页面时(我的实例中没有“x”,正如预期的那样)我当然希望在“样式”窗格中看到上面的样式规则 - 但是没有这样的运气。
在百灵鸟中,我尝试将其添加为开发工具中的内联样式,但 IE11 表示它不适用 - 被划掉 - 但我找不到任何其他样式胜过它。禁用页面的所有样式仍会禁用此伪元素样式。所以现在,如果我的样式规则没有被应用,我不确定为什么“清除”按钮不会出现。
我难住了。我有 IE11 的三个实例,相同的版本,相同的安装源,其中两个以不同的方式呈现来自同一站点的相同页面,并且显然遵守(或不遵守??)此样式规则不一致(或不遵守)一点)。我只是不明白为什么 - 或者为什么规则没有出现在开发工具中。可能只是浏览器错误??