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 に答える