在 post 构建事件中调用 csc.exe
Call csc.exe in post build event
我需要 运行 C# 编译器 csc.exe
在构建项目之后,但在启动它之前。它不能是 运行 "implicitly",因为它需要编译的 C# 文件是在先前的 post 构建事件中动态生成的。 (C# 文件是通过 运行 将外部程序针对 JAR 文件 (Java) 生成的;csc
调用实际上包含在程序生成的批处理文件中。我会在 post-build 事件中 运行 这个批处理文件)。
问题是当我尝试调用它时,VS 找不到它,因为它似乎不在 PATH
中。此外,我找不到 vcvarsall.bat
文件(可能会将 csc.exe
添加到路径中)并且我无法安装包含它的 VS 组件,因为我正在客户端的受限机器上工作。
但我可以通过在 "Developer Command Prompt for VS2015".
中手动启动它来成功 运行 csc
编辑:目前使用 CALL "C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\Tools\VsDevCmd.bat"
似乎可行,但是否有另一种不使用某些 BAT 文件的硬编码路径的方法?为什么 VS 不让我使用 csc
,而它自己隐式使用它?
作为快速解决方案,您可以使用以下命令独立于Visual Studio 2015的安装目录执行批处理文件:
call "%VS140COMNTOOLS%\VsDevCmd.bat"
一个可能更好的方法是编写一个单独的 *.csproj 文件来引用由外部作业创建的代码文件,并将该项目添加到您的解决方案中并使其依赖于生成源文件的项目.
我需要 运行 C# 编译器 csc.exe
在构建项目之后,但在启动它之前。它不能是 运行 "implicitly",因为它需要编译的 C# 文件是在先前的 post 构建事件中动态生成的。 (C# 文件是通过 运行 将外部程序针对 JAR 文件 (Java) 生成的;csc
调用实际上包含在程序生成的批处理文件中。我会在 post-build 事件中 运行 这个批处理文件)。
问题是当我尝试调用它时,VS 找不到它,因为它似乎不在 PATH
中。此外,我找不到 vcvarsall.bat
文件(可能会将 csc.exe
添加到路径中)并且我无法安装包含它的 VS 组件,因为我正在客户端的受限机器上工作。
但我可以通过在 "Developer Command Prompt for VS2015".
中手动启动它来成功 运行csc
编辑:目前使用 CALL "C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\Tools\VsDevCmd.bat"
似乎可行,但是否有另一种不使用某些 BAT 文件的硬编码路径的方法?为什么 VS 不让我使用 csc
,而它自己隐式使用它?
作为快速解决方案,您可以使用以下命令独立于Visual Studio 2015的安装目录执行批处理文件:
call "%VS140COMNTOOLS%\VsDevCmd.bat"
一个可能更好的方法是编写一个单独的 *.csproj 文件来引用由外部作业创建的代码文件,并将该项目添加到您的解决方案中并使其依赖于生成源文件的项目.