0

我有一个相当大的解决方案。加载所有内容的父项目有很多引用以及不确保所有内容都被加载的内容。我还有一个用于我们使用的第三方 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.dll --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 --load=......\Common\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。它不只关心 licx 文件和其中引用的 dll 吗?

4

1 回答 1

0

如果您不能使用配置文件,请在命令提示符处或在批处理文件中为命令行中最常用的路径进行驱动器替换。

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 

等等

确保使用正确的路径而不是 (...) 缩写的路径。

于 2013-06-13T15:53:37.647 回答