没有安装程序的Visual Studio 2013发布

时间:2014-07-09 21:32:51

标签: wpf visual-studio-2013

我有一个WPF项目,我试图在没有任何形式的安装程序的情况下发布。 基本上我希望程序编译在一个目录中,旁边有所有必要的文件,这样我就可以压缩所有内容并在客户端上部署程序。

理想情况下,我希望在EXE中编译所有外部资源。

有没有办法做到这一点?如果我进入debug / bin文件夹,在我的工作站上,我可以执行EXE,但是如果我将它与DLL一起压缩并尝试在另一台机器上执行它崩溃,可能错过了一个文件是我的猜测。 (如果我使用安装程序发布它可以工作,但这不适合这个项目。)

感谢 史蒂夫

编辑: 当我执行程序(我在成功构建后从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

3 个答案:

答案 0 :(得分:1)

工具包是否安装在您的PC(Visual Studio所在的)上?所有未包含在嵌入资源中的文件都应该是本地复制的(在这种情况下,构建会将这些文件复制到bin文件夹中。

要隔离问题并获得更好的错误消息,请将代码移至非开发人员PC并启用融合记录器以查找加载程序无法找到的任何程序集。

有关loader(fusion)记录器的更多信息,请参阅此链接 How to enable assembly bind failure logging (Fusion) in .NET

考虑向应用启动添加一些额外的错误记录代码,请参阅 .NET application cannot start and receive XamlParseException

答案 1 :(得分:1)

有一个很好的工具可以合并支持WPF的程序集:.net reactor。 您也可以尝试Vitevic Assembly Embedder。 希望这有帮助。

答案 2 :(得分:1)

您可能需要查看this文章,以查看缺少的依赖项并对应用程序进行概要分析。

PS:如果它没有帮助,请尝试在类似问题的示例代码和/或二进制文件中添加更多信息