我有一个WPF项目,想要发布该程序但不需要安装程序。基本上,我希望将程序编译到一个目录中,并将所有必要的文件放在旁边,以便我可以压缩所有内容并将程序部署到客户端。
理想情况下,我希望将所有外部资源编译到EXE文件中。
有没有办法做到这一点?如果我进入我的工作站上的debug/bin文件夹,我可以执行EXE文件,但是如果我将其与DLL文件一起压缩并尝试在另一台机器上运行它,则会崩溃,我猜测可能是缺少文件。(如果使用安装程序发布就可以工作,但对于这个项目来说不合适)。
谢谢 Steve 编辑: 当我执行程序(从成功构建后的Bin目录中复制的程序)时,什么都没有发生,只有“程序已停止工作”的消息。我的程序使用3个外部文件,一个图标、一个图像和一个字体。我引用了一个DLL(WPFtoolkit),我将该DLL添加到我的解决方案资源管理器中的一个目录中。所有文件都设置为嵌入式资源,并且“不复制”。我还添加了这段代码到我的程序中,但仍然出现相同的错误。http://codeblog.larsholm.net/2011/06/embed-dlls-easily-in-a-net-assembly/我的EXE的大小是正确的,我可以看到DLL已被“添加”到其中。但程序仅在我的工作站上运行:(
编辑: 我应该保留引用中的DLL吗?我的猜测是否定的,但如果我这样做,当我调用我的时候会出错:
如果我不调用它,程序会编译通过但会崩溃。请参见以下错误信息:
理想情况下,我希望将所有外部资源编译到EXE文件中。
有没有办法做到这一点?如果我进入我的工作站上的debug/bin文件夹,我可以执行EXE文件,但是如果我将其与DLL文件一起压缩并尝试在另一台机器上运行它,则会崩溃,我猜测可能是缺少文件。(如果使用安装程序发布就可以工作,但对于这个项目来说不合适)。
谢谢 Steve 编辑: 当我执行程序(从成功构建后的Bin目录中复制的程序)时,什么都没有发生,只有“程序已停止工作”的消息。我的程序使用3个外部文件,一个图标、一个图像和一个字体。我引用了一个DLL(WPFtoolkit),我将该DLL添加到我的解决方案资源管理器中的一个目录中。所有文件都设置为嵌入式资源,并且“不复制”。我还添加了这段代码到我的程序中,但仍然出现相同的错误。http://codeblog.larsholm.net/2011/06/embed-dlls-easily-in-a-net-assembly/我的EXE的大小是正确的,我可以看到DLL已被“添加”到其中。但程序仅在我的工作站上运行:(
编辑: 我应该保留引用中的DLL吗?我的猜测是否定的,但如果我这样做,当我调用我的时候会出错:
using Microsoft.Windows.Controls;
如果我不调用它,程序会编译通过但会崩溃。请参见以下错误信息:
Problem signature:
Problem Event Name: CLR20r3
Problem Signature 01: sw imperium.exe
Problem Signature 02: 1.0.0.0
Problem Signature 03: 53bdd468
Problem Signature 04: PresentationFramework
Problem Signature 05: 4.0.30319.18408
Problem Signature 06: 52312f13
Problem Signature 07: a19
Problem Signature 08: 46
Problem Signature 09: System.Windows.Markup.XamlParse
OS Version: 6.1.7601.2.1.0.256.1
Locale ID: 1033
Additional Information 1: 0a9e
Additional Information 2: 0a9e372d3b4ad19135b953a78882e789
Additional Information 3: 0a9e
Additional Information 4: 0a9e372d3b4ad19135b953a78882e789