问题标签 [csc]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c# - 防止在 NAnt 编译 windows 窗体应用程序时显示命令窗口
我一直在尝试在没有 Visual Studio 的情况下创建小 Windows 窗体应用程序。
我在 Notepad++ 中创建我的源代码并使用 NAnt 构建文件进行编译。
当我运行应用程序时,还会显示命令窗口以及应用程序窗口。如何防止命令窗口出现?
构建文件
.net - 在 Visual Studio 2010 RTM 中从 csc 引用 System.Web.Mvc 时出错
csc /target:library /reference:System.dll,System.Web.dll,System.Web.Mvc.dll Foo.cs
Microsoft (R) Visual C# 2010 编译器版本 4.0.30319.1 版权所有 (C) Microsoft Corporation。版权所有。
错误 CS0006:找不到元数据文件“System.Web.Mvc.dll”
(注意 - 它确实存在于 GAC_MSIL 文件夹下的 GAC 中)
compiler-construction - VS2010是否使用csc.exe/vbc.exe(直接或间接)编译相关项目?
正如标题所暗示的那样。
我找不到任何证据证明 DevEnv.exe 实际上在任何时候都调用了这些。
msbuild - MSBuild CoreCompile 目标如何识别参考程序集
谁能阐明 TFS2010 (RC) Microsoft.TeamFoundation.Build 目标中的 CoreCompile 任务如何生成传递给 csc.exe 的程序集引用?
我们看到对 System.Xml.dll 的 2.0 和 4.0 版本的引用(下面以粗体显示),但是我们在项目程序集引用上使用了“特定版本:true”标志,并且没有对 4.0 程序集的引用btproj 文件:
更新:我检查了ResolveAssemblyReferences目标的输出(来自Microsoft.Common.targets),可以看到只有项目中引用的程序集(即 2.0 框架程序集)包含在项目列表'_ResolveAssemblyReferenceResolvedFiles'中:
但是,CoreCompile 目标仍然包括上面详述的 4.0 程序集。
更新 2:好的,我已将此追溯到BizTalk 构建脚本中AddBizTalkHiddenReferences目标中的一个模糊错误。此特定目标尝试添加其他程序集,包括上面重复的程序集。
但是,它使用“mscoree.dll”中的 GetCORSystemDirectory,它返回加载到进程中的公共语言运行时 (CLR) 的安装目录,在本例中是加载到 MSBuild 中的 4.0 框架;结果,助手认为它没有引用 System.Xml 程序集并添加它,因此是重复的。
c# - 在 Ant 中使用 csc 任务构建的问题
我有一个使用 csc 的 ant 构建目标:
当我运行它时,出现以下异常:
csc failed: java.io.IOException: Cannot run program "csc": CreateProcess error=2, 系统找不到指定的文件
但是,当我手动添加一个空的 ServiceLauncher.exe 时,它会毫无例外地运行,但从未正确构建 .exe 文件。
如何正确构建这个 .Net 项目“ServiceLauncher”?
c# - 在 C# 项目中包含 FSharp.Core:解决类型冲突
我正在使用 C# 中的一些 F# 类型(Matrix等),因此我需要在我的 C# 项目中引用 FSharp.Core 程序集。到现在为止还挺好。
但是,显然 mscorlib.dll (v4) 中定义了一些类型,这些类型在 FSharp.Core (v2) 中“重复”,例如System.Tuple
和System.IObservable
. 我不明白为什么这是在 .Net 4 中。Matt Ellis 在他的 MSDN 文章中明确表示它们将被删除:
一种遭受 [重复] 问题的语言是 F#,它以前在 FSharp.Core.dll 中定义了自己的元组类型,但现在将使用 Microsoft .NET Framework 4 中添加的元组。
但是,如果我可以指定我想在我的 C# 程序中使用哪一个,我已经准备好跳过这个特别的不合时宜的重复。例如,当我尝试使用该System.Tuple
类型时,我收到以下 C# 编译器错误:
错误 2 'c:\Program Files (x86)\Reference Assemblies\Microsoft\Framework.NETFramework\v4.0\Profile\Client\mscorlib.dll' 和 'c:\Program Files 中都存在类型 'System.Tuple' (x86)\参考程序集\Microsoft\FSharp\2.0\Runtime\v2.0\FSharp.Core.dll'
显然,解决这个问题的方法是C# 编译器命令行上的一个开关,它给 type 起别名:
csc.exe MyType.cs /reference:System.Tuple`2=mscorlib.dll /reference:FSharp.Core.dll
但是,我找不到让 Visual Studio 将此参数发送到 C# 编译器的方法。
有人对此有解决方案吗?
dll - 合并 DLLs n .cs 文件
大项目的一部分是支付系统,我想重用它。我想将此支付系统的所有类文件合并到 DLL 中,以便将它们作为引用添加到所有其他项目中。目前的支付系统也使用来自商业应用程序的 DLL 的命名空间(nsoftware-paypal n 其他几个)。我尝试 csc 将单个文件编译成 DLL,但无法使其工作。我也尝试了ILMerge,但这似乎也不起作用。
CSC
由于 .cs 文件使用来自 nsoftware-Paypal 的 DLL 的命名空间,因此我在 csc 命令中包含了 DLL 文件和 .cs。它给了我一个错误,说“...nsoftware.InPayPal.dll 是二进制文件而不是文本文件”。当我尝试在没有贝宝 DLL 的情况下进行编译时,它会抛出一个错误,提示“缺少名为 nsoftware 的类型或命名空间”。
ILMerge 也不允许 .cs 文件(因为它当然不是程序集)。
我需要做的就是为整个系统生成一个(或多个)DLL,以便我可以在其他项目中使用它。
可能的?
c# - Visual Studio 疯了:尝试编译时出现“目录名称无效”错误
由于一些非常奇怪的原因,我的 Visual Studio 2008 在尝试编译 C# 项目时,尝试将可执行文件的输出写入与可执行文件同名的目录,至少看起来这就是错误消息所暗示的内容。在我的任何项目上运行编译后,CSC.EXE 报告以下编译器错误:
无法写入输出文件 'D:\Projects\Examples\StringBuilderVsString\obj\Release\StringBuilderVsString.exe' - '目录名称无效。'
当我查看内部obj\Release
或obj\Debug
所有中间资源时,例如 StringBuilderVsString.pdb 已正确写入该目录。目录中没有空格。从命令提示符运行 csc.exe 时也会发生该错误。
运行进程监视器时,我只看到 csc.exe 访问的文件成功,我看不到任何查询或写入不存在的位置。
欢迎任何有关解决此问题的想法。
msbuild - MSBuild 调用不正确的 csc.exe 版本
我正在使用团队城市调用一个 nant 脚本,目前这个 nant 脚本非常简单,只在解决方案中的单个项目上调用 msbuild 任务。
构建失败,看起来正在调用 msbuild 3.5,但它错误地从 .net 2.0 文件夹调用 csc.exe。由于我们使用的是 .net 3.5 语言功能,因此编译失败。
查看 csproj 文件,ToolsVersion 和 TargetFrameworkVersion 都设置为使用 3.5。什么会导致 msbuild 选择错误的 csc.exe 版本?