我有一个很大的解决方案。加载所有内容的父项目有很多引用,哪些不需要确保所有内容都被加载。我还为我们使用的第三方dll提供了一个licx文件。这一切在视觉工作室都很好。
但是,当使用xbuild (mono)编译相同的解决方案时,lic.bat命令会失败,因为“命令行太长”。
工具C:\PROGRA~2\MONO-3~1.10\bin\lc.bat执行从参数开始:-complist=my.licx-Target=myexe.exe --load=C:\PROGRA~2\MONO-3~1.10\lib\mono\4.5..\xbuild-frameworks.NETFramework\v4.0\RedistList........\4.0\System.dll --load=C:\PROGRA~2\MONO-3~1.10\lib\mono\4.5..\xbuild-frameworks.NETFramework\v4.0\RedistList........\4.0\System.Configuration.Install.dll --load=C:\PROGRA~2\MONO-3~1.10\lib\mono\4.5..\xbuild-frameworks.NETFramework\v4.0\RedistList........\4.0\System.Data.dll --load=C:\PROGRA~2\MONO-3~1.10\lib\mono\4.5..\xbuild-frameworks.NETFramework\v4.0\RedistList........\4.0\System.Management--load=C:\PROGRA~2\MONO-3~1.10\lib\mono\4.5..\xbuild-frameworks.NETFramework\v4.0\RedistList........\4.0\System.ServiceModel.dll --load=C:\PROGRA~2\MONO-3~1.10\lib\mono\4.5..\xbuild-frameworks.NETFramework\v4.0\RedistList........\4.0\System.ServiceProcess.dll -- .dll =.\.dll\log4net。dll --load=C:\PROGRA~2\MONO-3~1.10\lib\mono\4.5..\xbuild-frameworks.NETFramework\v4.0\RedistList........\4.0\System.Configuration.dll
.
..
..
在解决方案中有更多的不同dll的行,它们具有非常长的路径。
.
则该命令失败。
除了将我的licx文件移到另一个项目以尝试减少这些licx内容的引用外,这里还可以告诉mono不要包含某些项目或通过不同的机制传递参数。
后续问题我想后续问题是为什么lc.bat必须引用每个dll。它不只是关心在那里引用的in文件和dll吗?
发布于 2013-06-13 15:53:37
如果不能使用配置文件,则在命令提示符或批处理文件中为命令行中最常用的路径执行驱动器替换。
Subst K: C:\PROGRA~2\MONO-3~1.10\lib\mono\4.5..\xbuild-frameworks.NETFramework\v4.0\RedistList........\4.0然后将命令中的所有路径替换为K:.所以,
--load=C:\PROGRA~2\MONO-3~1.10\lib\mono\4.5..\xbuild-frameworks.NETFramework\v4.0\RedistList........\4.0\System.dll 变成了
--load=K:\System.dll 等。
确保使用正确的路径而不是(.)缩写的。
https://stackoverflow.com/questions/17091233
复制相似问题