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-pack 应用程序,它有时会开始工作。再次重新编译主应用程序,NetZ 生成一个失败的应用程序。换句话说,有些东西是断断续续的。很抱歉这个不太好的消息 - 要么尝试另一种打包方案,要么在许多版本上反复尝试 NetZ,直到找到一个可行的。

于 2013-10-16T06:34:14.313 回答