我有一些放置在共享驱动器上的源代码,该代码映射到F驱动器上。
我在这里构建了一大堆程序集:F:\ Development \ OurProject \ Assemblies \ Projects \ Release
在此文件夹中的特定dll: Common.Themes.dll (以及相应的Common.Themes.pdb)。我昨晚刚刚执行了完整构建,所以两者的日期都为10/22/2018 7:47 PM。该dll的产品版本和文件版本为5.0.6869.33817
在我开发的这个VM中,我有一个C:驱动器。我只是在此驱动器中搜索了Common.Themes.dll,因此可以将其从此C:驱动器中删除。我什至关闭了所有项目,以便可以删除在这里找到的所有dll:C:\ Users \ justlook \ AppData \ Local \ Microsoft \ VisualStudio \ 12.0 \ ProjectAssemblies
我还从以下位置删除了所有内容:C:\ Users \ justlook \ AppData \ Local \ Temp \
此dll / pdb在此计算机上的唯一实例在这里:C:\ Users \ justlook \ Documents \ Visual Studio 2013 \ Projects \ MyThemeTest \
Anyhoo ...
在此F驱动器上,这里有以下解决方案:F:\ Development \ OurProject \ UserProfiles \ UserProfiles.sln
在此解决方案中,我们在此处有两个项目文件\文件夹:
F:\ Development \ OurProject \ UserProfiles \ UserProfiles
F:\ Development \ OurProject \ UserProfiles \ TestContainer
在打开解决方案之前,我从两个位置删除了bin / obj文件夹(TestContainer是启动项目-并且UserProfiles未引用此DLL)。
正如我提到的,TestContainer确实引用Common.Themes.DLL。今天早上,我已经删除了引用,并通过多次浏览/导航到Assemblies文件夹来重新添加了引用。
打开解决方案后,将重新创建bin / obj文件夹,如果我转到TestContainer的bin文件夹,则所有引用都将立即放置在那里。目前,我看到日期为10/22/2018 7:47 PM的 Common.Themes.DLL 。太好了!
我去按绿色播放按钮(以调试/构建项目),它也显示绿色播放按钮旁边的Internet Explorer,因为它将默认打开IE。
在VS完成构建之后,我在TestContainer \ bin文件夹中查找,然后将10/22/2018 7:47 PM dll替换为一个日期为 10/9/2018 8:40 PM
的文件>pdb为10/22/2018 7:47 PM,但dll为10/9/2018,大小不同(显然)且版本不同(5.0.6856.35405)。较旧的版本。这是唯一执行此操作的文件。
为什么这样做呢???我无法停止。我没有从何处以及如何获得它的想法。
谢谢。
答案 0 :(得分:2)
好的,根据@Caius Jard所说的话,我在解决方案目录中进行了“文件查找”。令我惊讶的是,TestContainer .csproj具有Common.Theme引用了两次。
当我重新添加参考文献时,我看到它得到了更新:
<Reference Include="System.Xml" />
<Reference Include="System.Xml.Linq" />
<Reference Include="Common.Controls, Version=5.0.5493.35273, Culture=neutral, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\..\Assemblies\Projects\Release\Common.Controls.dll</HintPath>
</Reference>
<Reference Include="Common.Themes, Version=5.0.6869.33817, Culture=neutral, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\..\Assemblies\Projects\Release\Common.Themes.dll</HintPath>
</Reference>
所有正确的版本,并且HintPath使用相对路径。凉。这就是我检查.csproj文件时的重点。
但是现在我意识到,如果我滚动到底部,我会看到:
<ItemGroup>
<CustomReference Include="Gizmox.WebGUI.Forms">
<HintPath>F:\Development\AWayOlderVersion\UserProfiles\TestContainer\bin\Gizmox.WebGUI.Forms.dll</HintPath>
<Visible>false</Visible>
</CustomReference>
<CustomReference Include="Gizmox.WebGUI.Forms.Themes">
<HintPath>F:\Development\AWayOlderVersion\UserProfiles\TestContainer\bin\Gizmox.WebGUI.Forms.Themes.dll</HintPath>
<Visible>false</Visible>
</CustomReference>
<CustomReference Include="Common.Themes">
<HintPath>F:\Development\AnOlderVersion\UserProfiles\TestContainer\bin\Common.Themes.dll</HintPath>
<Visible>false</Visible>
</CustomReference>
</ItemGroup>
F:\ Development \ AnOlderVersion \ ...仍然存在。所以它是从那里拉出来的。
我不明白为什么会有这些“ CustomReferences”,并且在删除该ItemGroup(所以所有三个customreference)之后,它似乎工作正常。