【问题标题】:Why is my DLL reference getting set back to its previous setting?为什么我的 DLL 引用恢复到以前的设置?
【发布时间】:2014-09-04 16:01:38
【问题描述】:

我有一个需要保持同步的 .EXE/.DLL 对。

.EXE 引用了 DLL。

实际上,似乎我需要做的就是将最新的 DLL 复制到最新的 EXE 所在的文件夹中,以便让 EXE 在运行时引用正确的 DLL(就在它旁边的那个)。

但是,每当我更新 .EXE 时,都必须更新 .EXE 项目以显式引用新的 DLL。我这样做:

Removing the old DLL reference from the EXE project
Adding back the reference, pointing to the location of the latest version of the DLL

注意:如果没有这些步骤,.EXE 编译可以正常工作,但在引用旧的并与新的并存时,它不会运行

潜在的问题是,每当我回到 .EXE 项目时,它都会恢复到引用旧 DLL ——而不是我最近设置它引用的那个! IOW,我用一个路径删除版本 1.3.3889.27538,用另一个路径(DLL 项目的输出文件夹)中的版本 1.4.0.8 替换它,并且 .EXE 编译(并运行)很好,但是当我再次打开 EXE 项目时,DLL 再次引用 DLL 的 1.3.3889.27538 版本,指向该版本的路径。

每当我转身时,是否有一些设置顽固地恢复到旧的 DLL?

我不知道这是否重要,但是EXE项目中DLL引用的“Copy Local”属性设置为“True”

更新

注意:当我删除并重新添加 DLL 引用(到最新版本的 DLL)并构建 EXE 时,我必须在一个对话框中选择“确定”,它会通知我,“保存文件时发生错误文件“.csdproj.user”的项目用户选项

然后我必须在“将文件另存为”对话框中选择“保存”按钮来保存项目文件。一旦我选择“是”来替换已经存在的文件,它就可以正常构建了。

隐含? Es importante o de nada?

【问题讨论】:

    标签: dll deployment reference visual-studio-project visual-studio-setup


    【解决方案1】:

    当您向 .NET 项目添加对 3-rd 方 类库 (DLL) 的引用时,项目配置 (.csproj.vbproj) 文件出现。与其他设置一起,该行指定了引用类库的程序集版本。例如:

    <Reference Include="Telerik.WinControls, Version=2015.1.225.40, Culture=neutral, PublicKeyToken=5bb2a467cbec794e, processorArchitecture=MSIL" />
    

    这意味着:如果您更新外部 3-rd 方库的版本,您还需要显式更新项目引用

    如果您希望您的外部类库始终指向最新版本,则它必须是项目参考。换句话说,您将一个类库项目添加到您的解决方案中,然后在您的主项目中添加对该项目 (DLL) 的引用。这样,您将始终在输出文件夹中获得最新的依赖 DLL。

    但同样,如果您使用的是 3 方库,则必须显式更新项目引用以指向最新的 DLL。

    【讨论】:

      猜你喜欢
      • 2013-06-11
      • 2012-02-23
      • 2019-12-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-06-24
      • 1970-01-01
      相关资源
      最近更新 更多