0

私の目標は、コマンド ラインまたは Visual Studio の完全な組み込みを介して、C# アプリケーションおよびライブラリ (WPF を優先) に任意のパッカーを使用できるようにすることです。

私は .NetZ ( http://madebits.com/netz/ ) に出くわしました。これはかなりきちんとしていて、WPF アプリケーションでテストするまではうまく機能していました。

PackageExample.Program -> C:\Users\[username]\Documents\Visual Studio 
2012\Projects\PackageExample\PackageExample.Program\bin\Debug\PackageExample.Program.exe
COMMAND: packcompress\netz-bin-40\netz.exe -o PackageExample.Program\bin\Debug\Packed -pl 
anycpu -s -z PackageExample.Program\bin\Debug\PackageExample.Program.exe 
"PackageExample.Program\bin\Debug\*.dll" -d:@ -v
 __________________________________________ 
|                                          |
| .NETZ - .NET Executables Compressor      |
| Copyright (C) 2004-2013 Vasian Cepa      |
| [v0.4.8]  http://madebits.com            |
|__________________________________________|

PE subsystem    : GUI
.NET Runtime    : 4.0.30319.18052
Output directory: C:\Users\[username]\Documents\Visual Studio 
2012\Projects\PackageExample\PackageExample.Program\bin\Debug\Packed
     RID: zip.dll
Added           : C:\Users\[username]\Documents\Visual Studio 
2012\Projects\PackageExample\packcompress\netz-bin-40\zip.dll [65536 byte(s) ~ 64KB]
Processing      : 3 file(s)

 1|  C:\Users\[username]\Documents\Visual Studio 
2012\Projects\PackageExample\PackageExample.Program\bin\Debug\PackageExample.Program.exe
     [255488 byte(s) ~ 249KB] -> [130850 byte(s) ~ 127KB] - 49%
     RID: A6C24BF5-3690-4982-887E-11E1B159B249
 2|  C:\Users\[username]\Documents\Visual Studio 
2012\Projects\PackageExample\PackageExample.Program\bin\Debug\PackageExample.Lib1.dll
     [4096 byte(s) ~ 4KB] -> [1577 byte(s) ~ 1KB] - 62%
     RID: PackageExample.Lib1!2!1Version=1.0.0.0!2!1!4=neutral!2!1PublicKeyToken=null
 3|  C:\Users\[username]\Documents\Visual Studio 
2012\Projects\PackageExample\PackageExample.Program\bin\Debug\PackageExample.Lib2.dll
     [4608 byte(s) ~ 4KB] -> [1617 byte(s) ~ 1KB] - 65%
     RID: PackageExample.Lib2!2!1Version=1.0.0.0!2!1!4=neutral!2!1PublicKeyToken=null

Done [00:00:00.300]

パックされたアプリはこれをスローします: http://i.imagebanana.com/img/251ygj82/Unbenannt.PNG (リソースの mainwindow.xaml が見つかりません。)

問題は xaml .NetZ の混乱のようですが、インターネット上で動作するようになった人を見つけましたが、問題の解決策は得られません。

この場合、私を助けることができますか?

追加情報: .NET 3.5 WPF アプリケーション上の .NET 2.0 .NetZ ビルドでこれを試したことに言及するのは興味深いかもしれません。

4

1 に答える 1

1

また、NetZ を使用して WPF 4.0 exe と DLL を単一の exe に圧縮する際にも問題がありました。私の app.xml.cs は実行を開始しますが、タイプ NotImplementedException の UnhandledException がスローされます: Baml2006SchemaContext.ResolveBamlType ...

これをトラブルシューティングするために、fuslogvw.exe を実行してアセンブリ バインド エラーを確認したところ、GalaSoft.MvvmLight.Wpf4.dll が Netz でパックされたアセンブリからの読み込みに失敗していることがわかりました。次に、ソースからコンパイルされた NetZ.exe に切り替えて、再試行しました。実験を繰り返した結果、アプリを再コンパイルして NetZ パッキングすると、アプリが機能し始めることがあることがわかりました。メイン アプリを再度再コンパイルすると、NetZ によって失敗するアプリが生成されます。言い換えれば、何かが断続的です。あまり良いニュースではありませんが、別のパッキング スキームを試すか、動作するビルドが見つかるまで多くのビルドで NetZ を繰り返し試してください。

于 2013-10-16T06:34:14.313 に答える