C# 如何知道先加载哪个项目
当我在解决方案中包括一些项目并将引用更改为项目引用时,有时它仍然加载错误的程序集,因为有其他东西首先调用它,而我的解决方案中不包括该程序集。当项目数量增加时,发现这些项目变得越来越困难。。。你和谁打交道?我使用Lexware汇编参考工具。。。在VS中的“工具”菜单下提供一个菜单选项,用于查看引用是程序集引用还是项目引用、DLL的提示路径、复制本地、特定版本以及其他引用属性。它还允许您在一个窗口中编辑这些属性 适用于VisualStudio2010 适用于Visual Studio 2005/2008 另请注意:如果一个项目有一个项目引用,并且您在解决方案中有该项目,但引用的项目不包括在内,则引用的项目将不会生成,并且您将使用引用项目的bin文件夹中本地复制的dll(即,引用项目的上次成功生成是什么)。如果引用项目的dll没有本地副本,则生成将失败 如果,在构建顺序的继承权中,一个项目首先被编译,但有一个引用dll的较旧构建,那么对于更高的构建,您会遇到这个问题。原因是引用的dll被复制到bin文件夹。因此,当第二个项目编译时,它会查找对根编译项目中最低dll的引用,并发现bin文件夹中已经有一个副本(尽管是旧版本) 解决方案:C# 如何知道先加载哪个项目,c#,compiler-construction,C#,Compiler Construction,当我在解决方案中包括一些项目并将引用更改为项目引用时,有时它仍然加载错误的程序集,因为有其他东西首先调用它,而我的解决方案中不包括该程序集。当项目数量增加时,发现这些项目变得越来越困难。。。你和谁打交道?我使用Lexware汇编参考工具。。。在VS中的“工具”菜单下提供一个菜单选项,用于查看引用是程序集引用还是项目引用、DLL的提示路径、复制本地、特定版本以及其他引用属性。它还允许您在一个窗口中编辑这些属性 适用于VisualStudio2010 适用于Visual Studio 2005/20
(1) 将引用的项目本身包括在您的解决方案中
(2) 将项目引用更改为dll引用,并引用独立编译的本地受控版本。
(3) 手动更改项目的生成顺序(不推荐)
希望通过一个图表来说明这一点:
Solution
|
--Project 1 (references project 2 and project 3)
| \bin
|
|
--Project2
| \bin
| \proj4.dll (v1.5)
|
--Project 3
\bin
\proj4.dll (v1.2)
构建解决方案时,project 1首先强制编译project 3,并将所有相关DLL复制到其bin文件夹中。结构现在看起来像:
Solution
|
--Project 1 (references project 2 and project 3)
| \bin
| \proj3.dll
| \proj4.dll (v1.2)
|
|
--Project2
| \bin
| \proj4.dll (v1.5)
|
--Project 3
\bin
\proj4.dll (v1.2)
Solution
|
--Project 1 (references project 2 and project 3)
| \bin
| \proj2.dll
| \proj3.dll
| \proj4.dll (v1.2)
|
|
--Project2
| \bin
| \proj4.dll (v1.5)
|
--Project 3
\bin
\proj4.dll (v1.2)
接下来将编译项目2,但由于默认情况下特定的版本设置为false,因此项目1将看到它的bin目录中已经有一个proj4.dll版本,这对于项目2来说已经足够了。因此,它将只复制proj2.dll,结构如下所示:
Solution
|
--Project 1 (references project 2 and project 3)
| \bin
| \proj3.dll
| \proj4.dll (v1.2)
|
|
--Project2
| \bin
| \proj4.dll (v1.5)
|
--Project 3
\bin
\proj4.dll (v1.2)
Solution
|
--Project 1 (references project 2 and project 3)
| \bin
| \proj2.dll
| \proj3.dll
| \proj4.dll (v1.2)
|
|
--Project2
| \bin
| \proj4.dll (v1.5)
|
--Project 3
\bin
\proj4.dll (v1.2)
如果有人不同意,请随时纠正我。但我很确定这就是为什么你会看到你所看到的(如果我理解这个问题的话)