【问题标题】:How can I distribute a visual studio solution that references a class library如何分发引用类库的 Visual Studio 解决方案
【发布时间】:2011-12-05 13:32:27
【问题描述】:

我有一个使用 VB.net 编写的 Visual Studio 解决方案。

该解决方案包含 4 个项目。

  1. 图形用户界面
  2. 一项服务
  3. 设置库
  4. WiX 设置项目

这是它过去的工作方式。

上周,我没有共享设置库,一切都很好。但是,因为 GUI 和服务都包含一个名为 ConfigXML.vb 的相同类(用于序列化和反序列化设置),我经常在项目之间对其进行更改以及复制和粘贴,所以我决定将该类提取到一个库项目中它是自己的(以上 3 个)。

本周,没有任何效果!

我添加了对 1. 和 2. 的项目引用,并且事情的工作方式与以往一样。当我“开始调试”时,我可以正常查看和使用 GUI。

但是,我遇到的问题是,当我创建并安装解决方案的新设置时,GUI 和服务都无法启动。

我认为问题是设置库不再是预期的位置/没有正确注册,需要通过 Setup.msi 或类似的东西放置在目录中。

这是我第一次做这样的事情,所以我希望这是我需要的一个明显的修复。

【问题讨论】:

  • 当类库构建完成并且您的可执行项目将其标记为依赖项时,应将 DLL 复制到同一目录。
  • 好的,行得通!有没有办法阻止我需要将 dll 复制到两个项目的 exe 目录?
  • 将其添加为依赖项。在VS2010中:右键项目->添加引用->项目->选择DLL项目->确定。
  • 当您创建安装项目时,然后将您的依赖项也添加到您的安装项目中,然后它会自动将它们复制到您的 exe 位置路径中..
  • @Polynomial,我已经做到了,它有效。但问题是安装项目安装了 2 个应用程序,一个 GUI 和一个服务器。根据您解决我的问题的建议,我将 .dll 文件放入客户端计算机的安装目录(安装了损坏的软件并且失败)并且它可以工作。要修复服务,还必须将 .dll 放入服务安装目录。这是我的问题的解决方案。为了或减少重复,我的最后一个问题是,您是否知道一种将 .dll 放在中心位置一次的方法,而不是将其复制到 2 个单独的文件夹中?

标签: vb.net visual-studio dll setup-project


【解决方案1】:

我从该类的名称“...XML.vb”中得知,在磁盘上该类旁边有一个 XML 文件。如果有这样的文件,那么您需要将该文件添加到项目中,然后右键单击它转到“属性”并将“复制到输出目录”设置为“如果较新则复制”

【讨论】:

  • 我认为这与我在问题中概述的问题无关。该应用程序在提取库之前运行良好,安装时成功创建了 XML 文件。你确定这能解决我的问题吗?
猜你喜欢
  • 2011-01-03
  • 1970-01-01
  • 2015-11-28
  • 1970-01-01
  • 1970-01-01
  • 2022-11-30
  • 2010-09-24
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多