草庐IT

编译ffmpeg

全部标签

c# - 在编译时检测 c# 版本

我有一行旧的C#代码,基本上是这样的:foo.set_Parent(parent);它多年来一直编译良好。现在在VS2015中出现错误:CS0571'Foo.Parent.set':cannotexplicitlycalloperatororaccessor所以我可以将这一行重写为:foo.Parent=parent;这在VS2015中构建良好,但在VS2013中出现错误:'Foo.Parent'isnotsupportedbythelanguage;trydirectlycallingaccessormethods'Foo.get_Parent()'orFoo.set_Parent(

c# - 卸载 CodeDom 编译的程序集

我有一些在运行时编译的C#代码(我们称它为“脚本”)。它在我用来访问其功能的主程序中使用了一个接口(interface)。编译完成后,我有CompilerResults.CompiledAssembly,在这种情况下,我可以CreateInstance(Type)。一旦我使用完脚本,我想完全卸载。据我了解,如果我创建一个单独的应用程序域,我只能这样做:LoadingDLLsintoaseparateAppDomain我有一些关于我的实现的问题:如果我有多个脚本要编译并想独立卸载它们,我是否必须为每个脚本创建单独的应用程序域?我应该使用哪些应用域名?GUID是个好主意吗?是否有任何我应该

c# - 如何在 VS 2010 中的第一个错误时停止 C# 编译(VS 2008 宏不起作用)!

Newinformation:Thisquestionhasbeenre-askedhereandhasbeencorrectlyansweredbyNoahRichardswithasolutionthatworksinVS2010.在工作中,我们有一个包含80多个项目的C#解决方案。在VS2010中是否有可能在遇到错误时自动停止编译,而不是尽可能继续并在错误窗口中显示错误列表的默认行为?我很高兴它在遇到错误(文件级别)或项目无法构建(项目级别)时立即停止。我还注意到,在VS2008中,我们使用了类似于下面一些答案的宏,但它们在VS2010中不起作用(至少我无法使用它们,因为环境事件

c# - 在单声道中编译时 C# List 的问题(与作业相关)

我承认这是我的功课。任务说明说我必须编写一个程序来查找将由标准输入输入的图的拓扑顺序。然后我需要将其提交到教授的服务器上进行评分。现在不是算法问题了。这更像是一个技术问题。在我的计算机中,我使用.NET编译器(csc),而教授的评分机使用某种形式的单声道。效果很好,直到评分员说我得到了30/100。我的一个friend建议我使用评分员的“手动输入系统”,所以我开始,我让它为邻接列表创建了100000个列表的数组。评分员在几秒钟后报告说我的程序崩溃了。Stacktrace:at(wrappermanaged-to-native)object.__icall_wrapper_mono_ob

c# - LINQ:何时使用编译查询?

我想得到一些专家的建议。我以前使用过编译查询,但对于这种特殊情况,我不确定它是否合适。这是一种搜索表单,其中的查询会根据搜索内容而变化。staticFunc>Search=CompiledQuery.Compile((DBContextdb,intID)=>db.Person.Where(w=>w.LocationID=ID).Select(s=>newFoo{Name=s.PersonName,Age=s.Age,Location=s.LocationName,Kin=s.Kin}));现在如果有人填写搜索框,我想通过向查询添加另一个Where语句来扩展查询:varquery=Sea

c# - 为什么附加调试器后即时编译的 C# 代码无法运行?

我有以下面向.NET4.0的C#项目,它获取源代码文件,将其编译成一个程序集,然后执行该程序集中包含的一种类型的静态方法。只要我不在附加调试器的情况下启动程序,这就会按预期工作。在那种情况下,我在调用xmlSerializer.Serialize(sw,family);时遇到异常,更准确地说是System.NullReferenceException在System.TypeInitializationException里面在System.InvalidOperationException里面.如果我采用相同的程序,将源代码文件包含在项目中并直接编译到主程序汇编中,则无论是否附加调试器都

c# - 可靠地检测 C# 表达式树中编译器生成的类

我正在按照Linq-to-SQL的思路构建一个C#表达式到Javascript的转换器,但我遇到了编译器生成的表达式树的问题。我遇到的特殊问题是处理MemberExpression编译器生成的值,但没有CompilerGeneratedAttribute在它们的类型上指定。这是我一直在尝试的精简版:voidProcessMemberExpression(MemberExpressionmemberX){varexpression=memberX.Expression;varexpressionType=expression.Type;varcustomAttributes=expres

c# - 取决于编译器版本的条件编译

我正在寻找一种方法来实现这样的东西:#ifCSHARP_COMPILER_IS_FOR_CSHARP_6_OR_HIGHERfoo?.Bar();#elseif(foo!=null){foo.Bar();}#endif当然,我可以自己定义一个条件编译符号,但它不合适。有没有内置常量?我发现的问题相当陈旧。也许,东西都变好了? 最佳答案 没有,据我所知他们没有改变任何东西:-)您也许可以在csproj中做一些魔术来定义常量……但它很复杂……没有直接指定CSC版本的属性...有一个属性($(LangVersion))指定所需语言标准的版

c# - 成员访问调用不编译但静态调用编译

所以今天我在尝试构建我们公司的解决方案时遇到了一个有趣的问题,我想问问你们,你们知道为什么会这样吗?我被告知它可能来self的机器/VisualStudio,因为其他人没有同样的问题。所以我们在项目A中有一个方法:privatestaticstringRpcRoutingKeyNamingConvention(TypemessageType,ITypeNameSerializertypeNameSerializer){stringqueueName=typeNameSerializer.Serialize(messageType);returnmessageType.GetAttrib

c# - 使用 T4 和 C# 在运行时编译动态代码

我在T4上阅读的使用TextTemplatingFilePreprocessor的文章展示了如何动态生成成为项目一部分并与项目一起编译的代码。是否可以使用T4生成在运行时编译、输出到dll、加载和执行的代码,并且所述代码可以访问与dll关联的常见可见性功能?如果是这样,请给我举个例子。我正在有效地尝试做与使用IL生成动态dll相同的事情,而不是使用C#。编辑我需要这个的具体情况很简单。我正在编写一个将消息路由到服务的消息路由器。服务可以是本地的或远程的。声明性脚本被编译成C#。动态部分是“这个服务是本地的还是远程的?”。输出C#相应更改。本地/远程的路由风格不同,因此具有动态特性。这是