gpt4 book ai didi

.net - MSBuild使用项目引用正确构建项目,但不能从解决方案中构建项目

转载 作者:行者123 更新时间:2023-12-04 03:14:10 31 4
gpt4 key购买 nike

当我建立一个A.sln,其中包括2个项目B.csproj和C.csproj具有内部项目引用时,它将在MSBuild中引发引用错误。但是,当我在MSBuild中分别构建B.csproj和C.csproj时,它不会抛出错误。而且在VS IDE中构建A.sln也不会引发错误。我使用的是.NET 2.0框架。请在下面找到用于构建sln和projs的脚本。

MSBuild "<path>/A.sln" /p:Configuration=Release /p:StartupObject="" /p:WarningLevel=4 /p:Optimize=true /t:rebuild /l:Filelogger,Microsoft.Build.Engine;logfile=F:\A.sln.log /verbosity:normal

MSBuild "<path>/B.csproj" /p:Configuration=Release /p:StartupObject="" /p:WarningLevel=4 /p:Optimize=true /t:rebuild /l:Filelogger,Microsoft.Build.Engine;logfile=F:\B.csproj.log /verbosity:normal

MSBuild "<path>/C.csproj" /p:Configuration=Release /p:StartupObject="" /p:WarningLevel=4 /p:Optimize=true /t:rebuild /l:Filelogger,Microsoft.Build.Engine;logfile=F:\C.csproj.log /verbosity:normal

编辑:

引发的所有错误均来自缺少引用的代码(均为项目引用)。我只有三种错误,如下所示。

error CS0012: The type 'X' is defined in an assembly that is not referenced. You must add a reference to assembly 'Y, Version=2.0.0.0, Culture=neutral, PublicKeyToken=aad4cbe5d7c27078'.

error CS0234: The type or namespace name 'X' does not exist in the namespace 'Y' (are you missing an assembly reference?)

error CS0246: The type or namespace name 'X' could not be found (are you missing a using directive or an assembly reference?)



在从IDE和MSBuild进行构建之前,我从构建路径中清除了所有以前构建的dll。但是IDE只能正常工作,并且不会在项目的“引用”部分中显示引用缺失指示符。

在IDE中没有手动添加引用路径。

另一个更新:

我只是注意到当我从解决方案中打开两个项目时,引用在IDE中正确指向。但是,当我在IDE中单独打开项目时,我提到的在MSBuild中出现的缺失引用会逐渐增多。很奇怪

总结一下

Buiilding .proj in MSBuild - Good

Buiilding .proj in IDE - Error

Buiilding .sln in MSBuild - Error

Buiilding .sln in IDE - Good



对我来说看起来很奇怪。帮助非常感谢。

最佳答案

MSBuild和VS都使用项目引用和项目依赖项来选择解决方案的生成顺序。除此之外,它是不确定的-通常两者之间是不同的。检查这两个是否正确。项目依赖性在解决方案的属性中设置。
如果这不起作用,请仔细检查项目中项目引用中的GUID是否与解决方案中的GUID相匹配。有时重新创建解决方案可以解决这些问题。

关于.net - MSBuild使用项目引用正确构建项目,但不能从解决方案中构建项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1001264/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com