【问题标题】:Using .NetZ and WPF causes System.IO.IOException使用 .NetZ 和 WPF 会导致 System.IO.IOException
【发布时间】:2013-10-16 14:34:14
【问题描述】:

我的目标是能够通过命令行或 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 进行了尝试。

【问题讨论】:

    标签: c# wpf xaml


    【解决方案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,直到找到一个可行的。

    【讨论】:

    • 感谢您的回答,但我最终决定不使用任何构建后的解决方案。它不会打包我的文件,只是合并 .NET 组件,它也适用于 WPF。文章挺长的。如果您还在寻找解决方案,请检查:forum.ragezone.com/f578/net-merging-net-components-961798
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-10-14
    • 1970-01-01
    • 2017-11-04
    • 2017-02-18
    • 1970-01-01
    • 2021-12-14
    相关资源
    最近更新 更多