Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/batch-file/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
批处理-编译C#项目时出错_C#_Batch File - Fatal编程技术网

批处理-编译C#项目时出错

批处理-编译C#项目时出错,c#,batch-file,C#,Batch File,我正在尝试从windows命令行编译项目“MyProjectName” 代码如下: PUSHD E:\ C:\Windows\Microsoft.NET\Framework\v4.0.30319\csc.exe /target:library Projects\MyProjectName /define:DEBUG /out:\Projects\MyProjectName\debug\MyProjectName.dll *.cs 我得到了错误: source file "Projects\My

我正在尝试从windows命令行编译项目“MyProjectName”

代码如下:

PUSHD E:\
C:\Windows\Microsoft.NET\Framework\v4.0.30319\csc.exe /target:library Projects\MyProjectName /define:DEBUG /out:\Projects\MyProjectName\debug\MyProjectName.dll *.cs
我得到了错误:

source file "Projects\MyProjectName" could not be found
source file "*.cs" could not be found

当当前路径为

C:\Windows\Microsoft.NET\Framework\v4.0.30319\
然后是相对路径规范

Projects\MyProjectName
将作为当前路径的子目录,但可能不是。为项目目录指定绝对(根目录)路径

PUSHD命令似乎仅对驱动器号无效-否则,csc会抱怨“源文件E:\Projects…not found”

使用重新定位/目标开关和组合源参数的工作解决方案:

csc.exe /out:\Projects\MyProjectName\debug\MyProjectName.dll /target:library Projects\MyProjectName\*.cs /define:DEBUG

我不认为csc编译器可以使用通配符编译所有的.cs。相反,您需要编译描述文件的.proj文件。我猜您只是想要
Projects\MyProjectName\*.cs
。但是为什么不将您的项目文件提供给msbuild?@npocmaka:不,csc绝对可以处理通配符。@npocmaka:如果在合理的shell中运行此命令,则shell将用一系列文件替换通配符。通配符处理是由外壳完成的。请考虑使用开发人员命令提示符。这将为环境做准备,这样您就可以从项目目录中调用csc。热解决它吗?写E:\Projects\MyProjectName没有帮助。我在4.0.30319版本中得到了这个结果。请参阅更新答案的最后一行。更改是:1)将/target开关放在源路径之前(编译器抱怨,/target和/out必须位于源路径之前)2)将源路径和通配符合并为一个参数3)csc没有创建调试子目录。它失败了,直到我手动创建它。谢谢。编译正在运行。问题是它找不到没有.cs后缀的资源。我试图将target更改为/target:library Projects\MyProjectName**,但随后出现其他错误。可能是因为,这些资源的一部分在测试的文件夹中。请使用/resource参数嵌入.NET资源文件。有关详细语法,请参见此处:使用/recurse开关在嵌套文件夹中搜索输入文件。