C# 构建在第一次尝试时失败,然后通过
我有很多项目的解决方案,其中两个是C# 构建在第一次尝试时失败,然后通过,c#,.net,visual-studio,build,C#,.net,Visual Studio,Build,我有很多项目的解决方案,其中两个是Webservice和ConsoleApplicationWebservice是解决方案中的启动项目。我的解决方案构建顺序如下 项目A 项目B 控制台应用程序 网络服务 ProjectA和ProjectB在这两个项目中都被引用。现在,当我清理解决方案并尝试构建解决方案时,它第一次失败了。该错误来自ConsoleApplication项目中的一个类的构造函数,我正在实例化ProjectA的XYZ类。错误是 类型“XYZ”是在未引用的程序集中定义的。您必须添加对程序
Webservice
和ConsoleApplication
Webservice
是解决方案中的启动项目。我的解决方案构建顺序如下
类型“XYZ”是在未引用的程序集中定义的。您必须添加对程序集“ProjectA,Version=1.0.0.0,Culture=neutral,PublicKeyToken=null”的引用。ProjectPath\Program.cs
但是,当我再次构建解决方案时,它会成功构建。有人能帮我理解这种行为吗。这对我的项目来说并不是致命的,但我不想让VisualStudio决定什么时候做什么。我想知道这种行为的原因
另外,当我第一次构建解决方案时,我在ConsoleApplication的调试文件夹中看不到ProjectA或ProjectB的.dll
。但是,在第二次尝试时,这些DLL在调试文件夹中可见,并且生成成功
关于如何解决这个问题有什么建议吗?通常这是一个构建顺序问题。。。在您的解决方案上,右键单击,然后转到构建顺序 然后设置正确的项目构建顺序
干杯听起来您还没有设置项目依赖项。您必须正确设置构建依赖项,即
对于Visual Studio 2012 do,右键单击解决方案>属性>项目依赖项>项目如何相互引用?如果引用项目的输出
.dll
,而不是项目本身,这听起来像是您可能看到的行为。您是在使用项目引用,还是在按文件名引用ProjectA和ProjectB?听起来好像生成顺序有点不正常,它试图在生成ConsoleApplication的同时生成ProjectA。由于ConsoleApplication在ProjectA完成之前构建,因此失败。您第二次运行它时,ProjectA已经生成,一切都通过了。@David:我引用的是项目,而不是DLL。@JoachimIsaksson:有办法修复它吗?我在问题中提到了生成顺序,对我来说似乎是正确的。你能告诉我这里的建造顺序是什么吗?很抱歉。您是否在ProjectA中引用了任何其他第三方dll?是。我引用了我创建的外部dll。您的第二点无效。Webservice正在我的解决方案中引用控制台应用程序。我认为我的建造顺序应该传达这样的信息:)