【问题标题】:Visual studio 2010 assembly referencesVisual Studio 2010 程序集参考
【发布时间】:2014-01-27 19:43:47
【问题描述】:

我在计算机上安装了一个用于 win 表单的 devexpress 行的项目。在 VS2010 中,我添加了对一些 devexpress .dll 的引用,并将这些引用标记为“复制本地”并构建项目。比我将一个包含项目的文件夹发送给另一个机器上没有安装 devexpress 的用户。当他打开解决方案时,所有 devexpress 引用都显示为已损坏,并且程序集无法编译。

输出如下:

C:\Windows\Microsoft.NET\Framework\v4.0.30319\Microsoft.Common.targets(1578,5): 警告 MSB3245:无法解析此引用。找不到程序集 “DevExpress.Data.v13.1,版本=13.1.8.0,文化=中性,PublicKeyToken=b88d1754d700e49a”。 检查以确保该程序集存在于磁盘上。 如果您的代码需要此引用,您可能会遇到编译错误。

如何正确添加对程序集的引用,以便我可以在没有安装此类 .dll 的机器上打开它?

【问题讨论】:

  • 尽量不要敞开大门:程序员也需要从 DevExpress 购买许可证。将项目中的引用替换为您提供的副本应该会让他有所了解。然而,设计时支持不太可能起作用。
  • 假设它不是 DevX 而是另一个 .dll。如果它没有安装在 GUC 中,那么必须通过某种方式将此 dll 添加到具有相对路径的项目中,不是吗?否则在不同的机器上,不同的用户必须以不同的方式为每台机器确定此 dll 的本地路径。
  • 这个人执行你发给他的程序没有问题。建造它是一锅不同的鱼。

标签: c# .net visual-studio-2010 devexpress projects-and-solutions


【解决方案1】:

“复制本地”选项是在构建过程之后将文件复制到发布的目录。

您可以将这些 dll 包含在单独的解决方案文件夹中,将 VisualStudio 引用到它们并将此文件夹与解决方案一起提交到 svn 或 tfs。

【讨论】:

    【解决方案2】:

    为此,您需要通过添加引用.../浏览添加引用。在您项目的 csproj 文件中,您应该有如下内容:

    <Reference Include="Name.Of.Assembly">
        <HintPath>Relative\Path\ToAssemblyFile.dll</HintPath>
    </Reference>
    

    但是 VisualStudio 尝试变得聪明,并将引用添加到已安装的程序集,即使您选择浏览... 来添加它们。 您可以:

    1. 不安装 DevExpress 包,只将 DLL 复制到您的开发机器上
    2. 手动编辑 .csproj 文件

    无论哪种方式,您都需要将 DLL 保存在某个地方。我通常将它们置于源代码控制之下。

    【讨论】:

      【解决方案3】:

      为此,您应该将 DevExpress(或其他第三方)程序集添加到解决方案根目录下的文件夹中,然后引用此文件夹中的程序集,而不是引用 DevExpress 安装目录。

      您还应该将第三方程序集添加到源代码管理中,以便所有开发人员都可以使用它们。

      如果其他开发人员没有安装 DevExpress 许可证,它仍然会构建,但会在运行时显示一个 nag 屏幕。

      【讨论】:

        猜你喜欢
        • 2010-12-15
        • 1970-01-01
        • 2011-12-25
        • 1970-01-01
        • 1970-01-01
        • 2012-11-04
        • 1970-01-01
        • 1970-01-01
        • 2010-10-02
        相关资源
        最近更新 更多