【问题标题】:Visual Studio 2010 dll create errorVisual Studio 2010 dll 创建错误
【发布时间】:2012-02-03 17:05:01
【问题描述】:

我是 C# 编程新手,但在创建 dll 时遇到问题。

我打开了一个类库项目并在我的类中编写了公共静态方法。单击调试并将 dll 和 pdb 文件(在 bin/debug/.. 下)复制到我的 WPF 应用程序项目中。

我没有遇到任何参考问题,编辑器也正常显示我的方法,当我使用它们时,它也没有给我任何错误或警告......

但是,当我运行我的程序时,我发现调用 dll 方法的方法不起作用。另外,debug模式也会跳转我的方法,所以我无法追踪代码。

我哪里做错了?有没有其他方法来创建 dll 或者我在这里错过了一个技巧? 谢谢。。

【问题讨论】:

  • 调用方法不起作用到底是什么意思?调试模式正在跳转您的方法,因为调试器无法找到源。将 dll 解决方案附加到同一个项目,并引用 dll 的输出,这应该可以解决该问题。'
  • 我建议:不要复制你的 DLL 和 pdb 文件。在您的 WPF 项目中,添加对库 DLL 的引用,当您构建 WPF 项目时,它应该会在您的输出目录中自动创建 DLL 和 pdb 文件。

标签: c# wpf visual-studio-2010 dll


【解决方案1】:

与其将 DLL 复制到 WPF 应用程序的 bin 目录中,不如从 WPF 应用程序中添加对类库的项目引用,或者添加对类库输出目录的引用.否则,构建可能会复制您手动复制的文件。基本上,您应该将 bin 中的任何内容视为“由 Visual Studio 控制”IMO - 不要手动复制任何内容。如果您也使用项目引用而不是引用特定文件,这会有所帮助 - 这样每个构建都会为其依赖项获取适当的配置。

【讨论】:

  • 感谢您的回答。当我单击添加项目参考时,我得到空列表。我应该将这两个项目合并到一个解决方案中吗?如果我应该,那就有问题了。 WPF 应用程序是由包括我在内的四个人编写的,我在 dll 中的代码必须只有我才能看到。我们正在使用 svn 并提交整个解决方案。如果我没有编译我的代码只是添加引用,我不知道如何隐藏代码
  • @ErcanÖzdemir:不清楚他们不在同一个解决方案中。为什么要对同事隐藏源代码?如果您使用的是 svn,他们还是看不到您的代码吗?如果你真的在不同的解决方案中需要它们,我建议你有一个“lib”目录或将你的库复制到的地方,然后添加对 that 的引用。
  • 我们的一个小组成员不在公司,因此需要隐藏一些方法(包括解密、身份验证等)。创建一个 lib 目录并在其中复制 dll 是我的第一次尝试。我在我的 WPF 项目中引用了 dll,但即使我没有收到错误,我的方法也不起作用
  • @ErcanÖzdemir:好的,听起来你只需要发布二进制文件。 “不工作”是对正在发生的事情的相当模糊的描述。如果没有错误(包括没有异常),那么 something 必须正在执行...
  • 好的,让我试着更清楚一点(抱歉,我是 C# 开发新手,因此我很难解释我的问题) public string example() { String hardwareKey = KeyManager.generateHardwareKey ("", mac地址);返回硬件密钥;我在此方法的第一行设置了一个调试点,调试器会跳转我的方法。 (KeyManager 在我的 dll 中,它有公共静态方法)
猜你喜欢
  • 2011-04-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-07-26
  • 2012-11-04
  • 2013-03-26
相关资源
最近更新 更多