为什么我的DLL引用被设置回以前的设置?
我有一个.EXE/.DLL对需要保持同步 .EXE具有对DLL的引用 实际上,我需要做的似乎就是将我最新的DLL复制到最新的EXE所在的文件夹中,以使EXE在运行时引用正确的DLL(它旁边的那个) 但是,必须更新.EXE项目,以便在我更新.EXE时显式引用新的DLL。我通过以下方式做到这一点:为什么我的DLL引用被设置回以前的设置?,dll,deployment,reference,visual-studio-project,visual-studio-setup,Dll,Deployment,Reference,Visual Studio Project,Visual Studio Setup,我有一个.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 locatio
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,而不是我最近将其设置为引用的DLL!现在,我用一个路径删除版本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”的项目用户选项时出错”
然后,我必须在“文件另存为”对话框中选择“保存”按钮来保存项目文件。一旦我选择“是”替换现有文件,它就会正常生成
当您向.NET项目添加对第三方类库(DLL)的引用时,会在项目配置(.csproj或.vbproj)文件中显示相应的行。该行与其他设置一起指定引用类库的程序集版本。例如:
<Reference Include="Telerik.WinControls, Version=2015.1.225.40, Culture=neutral, PublicKeyToken=5bb2a467cbec794e, processorArchitecture=MSIL" />
这意味着:如果您更新外部第三方库的版本,您还需要显式更新项目参考
如果希望外部类库始终指向最新版本,则它必须是项目引用。换句话说,将类库项目添加到解决方案中,然后在主项目中仅添加对该项目(DLL)的引用。这样,您将始终在输出文件夹中获得最新的依赖DLL
但是,如果您使用的是第三方库,则必须显式更新项目引用以指向最新的DLL