问题标签 [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.

0 投票
1 回答
350 浏览

c# - 防止在 NAnt 编译 windows 窗体应用程序时显示命令窗口

我一直在尝试在没有 Visual Studio 的情况下创建小 Windows 窗体应用程序。

我在 Notepad++ 中创建我的源代码并使用 NAnt 构建文件进行编译。

当我运行应用程序时,还会显示命令窗口以及应用程序窗口。如何防止命令窗口出现?

构建文件

0 投票
1 回答
1433 浏览

.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 中)

0 投票
3 回答
1249 浏览

compiler-construction - VS2010是否使用csc.exe/vbc.exe(直接或间接)编译相关项目?

正如标题所暗示的那样。

我找不到任何证据证明 DevEnv.exe 实际上在任何时候都调用了这些。

0 投票
1 回答
2354 浏览

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 程序集并添加它,因此是重复的。

0 投票
1 回答
755 浏览

c# - 在 Ant 中使用 csc 任务构建的问题

我有一个使用 csc 的 ant 构建目标:

当我运行它时,出现以下异常:

csc failed: java.io.IOException: Cannot run program "csc": CreateProcess error=2, 系统找不到指定的文件

但是,当我手动添加一个空的 ServiceLauncher.exe 时,它​​会毫无例外地运行,但从未正确构建 .exe 文件。

如何正确构建这个 .Net 项目“ServiceLauncher”?

0 投票
2 回答
4027 浏览

c# - 在 C# 项目中包含 FSharp.Core:解决类型冲突

我正在使用 C# 中的一些 F# 类型(Matrix等),因此我需要在我的 C# 项目中引用 FSharp.Core 程序集。到现在为止还挺好。

但是,显然 mscorlib.dll (v4) 中定义了一些类型,这些类型在 FSharp.Core (v2) 中“重复”,例如System.TupleSystem.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# 编译器的方法。

有人对此有解决方案吗?

0 投票
2 回答
990 浏览

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,以便我可以在其他项目中使用它。

可能的?

0 投票
4 回答
3841 浏览

.net - 如何保证VSVARS32.BAT批处理文件永久生效?

如果我需要在正常命令提示符下使用 microsoft C# 编译器,它会在此处说明如何设置环境变量(通过运行 VSVARS32.BAT)。我执行它,然后我可以运行“csc”(编译器)。但是,当我关闭运行 VSVARS32.BAT 的命令行窗口时,效果似乎消失了

有没有办法使环境变量永久化,以便我可以从应用程序运行 csc.exe?

0 投票
5 回答
15665 浏览

c# - Visual Studio 疯了:尝试编译时出现“目录名称无效”错误

由于一些非常奇怪的原因,我的 Visual Studio 2008 在尝试编译 C# 项目时,尝试将可执行文件的输出写入与可执行文件同名的目录,至少看起来这就是错误消息所暗示的内容。在我的任何项目上运行编译后,CSC.EXE 报告以下编译器错误:

无法写入输出文件 'D:\Projects\Examples\StringBuilderVsString\obj\Release\StringBuilderVsString.exe' - '目录名称无效。'

当我查看内部obj\Releaseobj\Debug所有中间资源时,例如 StringBuilderVsString.pdb 已正确写入该目录。目录中没有空格。从命令提示符运行 csc.exe 时也会发生该错误。

运行进程监视器时,我只看到 csc.exe 访问的文件成功,我看不到任何查询或写入不存在的位置。

欢迎任何有关解决此问题的想法。

0 投票
3 回答
3121 浏览

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 版本?