4

这是我的项目结构:

  • 网络应用项目
    • 在同一 Visual Studio 2008 解决方案中具有对类库 1 的项目引用
  • 类库 1
    • 在同一解决方案中具有对类库 2 的项目引用
  • 类库 2
    • 有一个标记为构建操作的文件:嵌入式资源并复制到输出目录:始终复制

这是我的问题:

当我构建我的 Web 应用程序项目时,类库 2 中的嵌入资源没有按照应有的方式复制到 Web 应用程序项目的 bin 目录中。如果我将项目引用直接从我的 Web 应用程序项目添加到类库 2,则该文件将复制到 bin 目录。

如何在不添加不必要的引用的情况下复制嵌入的资源文件?

4

1 回答 1

12

我认为您需要将其标记为内容+ 始终复制。

有关不同 Visual Studio 文件属性的详细信息,请参阅此页面


更新 1

尝试在您的 Web 应用程序项目中创建指向该文件的链接。您可以通过...

  1. 使用解决方案资源管理器右键单击您的 Web 项目(或其中的文件夹)
  2. 选择添加 > 现有项目
  3. 导航到您的文件并选择它
  4. 单击添加按钮右侧的小箭头,然后选择添加为链接

更新 2

在引用的库项目中的任何文件上始终使用 Content / Copy 应该会导致文件被复制到主项目的 bin 文件夹中。如果文件在文件夹中,它将在 bin 文件夹中的该文件夹中。

确保如果您正在执行 Release 构建,您正在查找 bin/Release,如果您正在执行 Debug 构建,您正在查找 bin/Debug。

另外,尝试进行全部重建。


更新 3

我明白你现在在说什么了。当您引用不在您的解决方案中的库 DLL 时,您只是在引用 DLL,而不是在该项目中的任何其他内容。

因此,我认为您将需要执行以下操作之一...

  1. 在您的解决方案中包含该项目
  2. 链接到文件(如在更新 1 中)
  3. 创建一个名为类似的新项目MyLibraryContentFiles,其中只有库项目的内容文件,但没有代码,并将此项目包含在您的解决方案中。无论如何,您可能会发现将内容文件与代码分开是有利的。
  4. 在库项目 (DLL) 中嵌入您需要的任何文件(使用嵌入式资源),然后在公共类上提供一个属性,该属性提供某种接口来引用文件。如果它是一个图像文件,你可以返回一个Image对象。如果它是一个文本文件,你可以返回一个普通的string.
于 2010-03-26T17:15:37.990 回答