我有一个WebApplication,其中包含对WCF服务的引用。
使用Visual Studio 2010构建时,Build会在没有任何错误或警告的情况下失败。但是,使用.csproj
构建MsBuild
是成功的。
无法弄清楚我应该在Visual Studio中尝试什么来解决/诊断问题。你能帮忙吗?
修改
我发现构建失败了,
从状态栏中显示的文字。
从输出窗口:
========== Build: 0 succeeded or up-to-date, 1 failed, 0 skipped ==========
答案 0 :(得分:82)
我刚遇到类似的情况。在我的例子中,csproj文件的BeforeBuild目标中出现的自定义操作(来自Nuget.org上可用的MSBuildVersioning包 - http://www.nuget.org/packages/MSBuildVersioning/)失败而没有在正常位置触发任何错误消息。
我能够通过将MSBuild项目构建输出详细程度(在Visual Studio的选项/项目和解决方案/构建和运行设置区域中)设置为" Diagnostic"来确定这一点。如下所示。然后,这表明自定义操作(在我的情况下是HgVersionFile)是失败的。
答案 1 :(得分:65)
答案 2 :(得分:54)
答案 3 :(得分:19)
VS(2013 Pro,Win 8.1)重启为我做了。
答案 4 :(得分:8)
我希望扩展Sasse's answer。
要解决Visual Studio 2015 Update 2的问题,我必须一次构建一个项目,并在每次构建后查看输出窗口。
一个项目给了我
"类型或命名空间名称' SomeNamespace'名称空间中不存在' BeforeSomeNamespace' (你错过了一个程序集引用吗?)"。
错误列表窗口中没有错误,但程序集在"参考"下面有一个黄色警告标志。
然后我看到引用项目的目标是4.5.1和引用的项目4.6.1。将4.6.1更改为4.5.1可以使整个构建成功。
答案 5 :(得分:5)
没有什么对我有用所以我删除了.suo文件,重启了VS,清理了预测,然后构建就可以了。
答案 6 :(得分:5)
答案 7 :(得分:4)
似乎这个问题有多个答案,所以我会从个人经验中加入我的希望,这样可以节省时间/压力。
确保解决方案中的所有项目都针对相同的.NET版本。
与OP类似,有0个错误,但构建仍然失败。但是,有一个警告条目(埋在几百个无用的XML警告之间......)说一个项目的目标是不同的.NET版本,而不是引用它的项目。整个问题是我的解决方案中的一个项目是针对.NET 4.5.2,其余项目的目标是4.5.1。它应该即使有这种差异也是如此(因此它只是一个警告)但不幸的是,它破坏了构建。
奇怪的是,它建立/运行了一段时间,但突然,构建开始失败一次造成这个问题。不知道我为它开始抱怨不同的.NET目标版本做了什么,但我觉得Visual Studio中只有一些神秘面纱永远无法解决。
答案 8 :(得分:3)
我遇到了同样的问题,并且将问题归结为错误列表选项“构建+ Intellisense”。
如果选择此选项,则列表中不会显示任何错误。切换到“ 仅构建”,错误就会按预期出现。
它看起来像Visual Studio中的错误。 重新启动Visual Studio解决了此问题。
答案 9 :(得分:3)
首先"清洁解决方案" ,然后重建soln。
如果赢了,请关闭解决方案并重新启动解决方案。
试试这些东西,希望绝对有效。
答案 10 :(得分:3)
对我来说,Target Framework
是问题所在。
我的项目的Target Framework
是4.5.2
,引用的项目的Target Framework
是4.6.1
。
一旦我将项目的Target Framework
更新为4.6.1
,问题就得到解决。
答案 11 :(得分:3)
另一种可能性是Visual Studio需要以管理员身份运行,这可能与部署到本地IIS服务器或其他部署需求有关。
答案 12 :(得分:3)
我最近也遇到过同样的问题,我也尝试过很多类似的事情, 重新启动Visual Studio,清理并重建解决方案,重新启动PC等。 (首先确保解决方案中的所有项目都针对相同的.NET版本。)
但是显然没有任何帮助,所以我遵循以下步骤;
然后, 删除所有包含的文件(某些文件不会删除,没关系,只需跳过它们) 。
使用运行命令(通过按Windows键+ R)并键入“%temp%”,然后按Enter查找临时文件。
最后,将其全部删除。
这对我有用,希望对您的情况有用。
答案 13 :(得分:2)
仅仅是为了完成并且可能帮助某人在将来再次遇到相同的错误,我使用Mahapps metro接口并更改了一个窗口的XAML,但忘记更改代码隐藏中的部分类。在这种情况下,构建失败没有错误或警告,我能够通过增加设置输出的详细程度找到它:
答案 14 :(得分:2)
使用Visual Studio 2019,我不得不``以管理员身份运行'',它最终运行正常。 因此,以管理员身份打开应用程序(以管理员身份右键单击并运行)。
答案 15 :(得分:2)
我遇到了同样的问题。错误列表窗口有2个下拉菜单“显示包含的项目”和“显示生成的问题”。将鼠标悬停在下拉列表后,这些名称可见。 “显示已生成问题”下拉列表设置为“Build + IntelliSense”,更改为“仅构建”后,错误出现在列表中。
答案 16 :(得分:2)
当引用的项目之一是.NET框架的更高版本而不是当前项目时,就会发生这种情况。
答案 17 :(得分:2)
在我的解决方案中添加一个新项目(称为" TestCleaner")之后,我遇到了类似的问题:构建失败,没有错误。
我增加了输出的详细程度(参见Richard J Foster的说明)并搜索输出"失败"。我很快发现哪个项目失败了,为什么:project" TestRunner"失败了" 错误CS0246:类型或命名空间名称' TestCleaner'无法找到" (即使代码中没有突出显示任何问题)。
检查TestRunner的引用,确定对TestCleaner的引用被标记为未解析,并且引用属性中缺少路径。删除和重新添加没有修复它。再一次,没有解释原因。
我终于找到了原因:" TestCleaner"正在使用不同的目标框架到其他项目。这是.Net 4.5.2;其他人都是4.5。
答案 18 :(得分:1)
为我解决的是从解决方案的根目录中删除.vs
文件夹并重新启动Visual Studio。
同样重要的是,即使错误没有显示在错误列表窗格中,它们仍然存在于构建的输出中。
答案 19 :(得分:1)
在我这边,当我添加一个新项目(库)时遇到了这个问题
我如何解决
右键单击新添加的库,依次转到“属性”和“应用程序”,在“应用程序”下,将“目标框架”更改为所有项目的框架。
问题是您的项目使用不同的目标框架。
答案 20 :(得分:1)
转到输出窗口,在输出窗口TADA中搜索“错误”
答案 21 :(得分:0)
尝试从Powershell命令行构建项目:
dotnet build
然后,即使Visual Studio播放隐藏和查找错误消息,您也可以在命令行输出中看到任何错误。
答案 22 :(得分:0)
重现此症状的另一种方法:
我向现有解决方案中添加了一个新项目,并且构建输出报告了错误,例如“找不到类型或名称空间名称X ...”,但错误列表中未显示任何错误。
我引用的类在同一解决方案的其他项目中(被引用)。
事实证明,我错误地在新项目中选择了.net的早期版本。一旦我更改为与其他项目相同的版本,一切都将构建而没有任何错误。
答案 23 :(得分:0)
如果安装了nuget包'Microsoft.Net.Compilers',请确保它适合您的Visual Studio版本(Build Tools版本)。
版本1.x表示C#6.0(Visual Studio 2015和更新)。例如,1.3.2
因此,如果您使用VS2015
,请不要升级到1.x以上的版本答案 24 :(得分:0)
在我的情况下,我为here设置了Diagnostic
的MSBuild详细程度。
猜猜在Visual Studio Output
窗口的最后一行中显示了什么……
2>"C:\Company\Project\project.sharded\Project\Project.csproj" (Rebuild;BuiltProjectOutputGroup;BuiltProjectOutputGroupDependencies;DebugSymbolsProjectOutputGroup;DebugSymbolsProjectOutputGroupDependencies;DocumentationProjectOutputGroup;DocumentationProjectOutputGroupDependencies;SatelliteDllsProjectOutputGroup;SatelliteDllsProjectOutputGroupDependencies;SGenFilesOutputGroup;SGenFilesOutputGroupDependencies target) (1) ->
2>(CoreCompile target) ->
2> C:\Company\Project\project.sharded\Project\Services\UserService.cs(387,59,387,62): error CS0136: A local or parameter named 'sut' cannot be declared in this scope because that name is used in an enclosing local scope to define a local or parameter
2>
2> 2147 Warning(s)
2> 1 Error(s)
这看起来像是Visual Studio 2019(16.3.5)中的错误。
在Visual Studio的Error List
窗口中没有显示错误。
这是一种常见于Error List
窗口中的错误。
这是违规行:
var sut = _sdb.SysUsableThreads.SingleOrDefault(sut => sut.uid == thread.uid && sut.thread_core == thread.core);
好。无法使用sut
,因为var名为sut
,而我将lambda命名为sut
。同样,这是应该在Error List
中显示的内容。确保这是Visual Studio 2019中的错误。我在Visual Studio中报告了该错误。
答案 25 :(得分:0)
我发布这个答案是因为尽管它很晦涩,但它是其他答案所独有的,有人可能会遇到它!
我有一个页面和代码隐藏:
`myPage.aspx` and `myPage.aspx.vb`
在构建项目时,我会在 .aspx.vb
页面上收到错误,指出 .aspx
页面上定义的属性不存在,即使页面本身会很好地构建并且输出中没有显示其他错误(即使具有诊断级别的构建输出)。
然后我在项目中发现了一个页面,该页面名称相同但带有下划线:_myPage.aspx
- 不确定它来自哪里,我删除了它,并且解决方案构建得很好。
答案 26 :(得分:0)
我曾经遇到过这个问题。确实存在构建错误,但没有显示错误。我通过查看输出窗口并找出错误来解决这个问题。
答案 27 :(得分:0)
重新启动Visual Studio对我有用。另外,请尝试正常重新启动Visual Studio(不以管理员身份运行)。尝试重新启动系统,然后重复以上步骤。
答案 28 :(得分:0)
我遇到了同样的问题,我更改了工具-> 选项-> 项目和解决方案/生成并运行-> MSBuild项目生成日志文件的详细程度[诊断]。由于某些原因,此选项在日志中显示错误,我的VS在“错误”选项卡中未显示错误!
执行上述设置,然后在记事本/文本编辑器的输出副本中进行搜索,以查找错误。它会显示所有错误。
答案 29 :(得分:0)
由于所有操作均无效,因此发现以解决方案(.sln)打开项目时不会显示错误,而以项目打开项目时会显示错误。
答案 30 :(得分:0)
我在旧机器上有一个非常古老的项目。当我关掉机器时,项目正在正确建设。今天,我收到构建错误但没有错误消息。在尝试了上面的一些建议之后,没有运气。
在Visual Studio 2015中,我打开了 TOOLS>下的详细MSBuild。选项>项目和解决方案>建立并运行
它给了我很少有关构建的细节,但没有错误。之后我尝试检查扩展和更新(工具>扩展和更新),发现其中很少需要更新。
Nuget Package 是罪魁祸首,在更新Nuget后 - 构建成功。
答案 31 :(得分:0)
我已经尝试了所有但在我的情况下没有任何工作,然后我已经改变了这些提到的设置,这对我来说很好地解决了这个问题。 尝试如果它可以帮助后来的观众。 这些设置可能会因您的情况而有所不同,但请确保使用您最初保留的相同配置设置(包括图像中所示)构建所有包含DLL的DLL。
干杯!
答案 32 :(得分:0)
我遇到了同样的问题!只需删除bin文件夹并重新启动01/07/17 00:00:00
即可。
这就是全部。
在VS
进行了测试。
答案 33 :(得分:0)
删除几张表格后我遇到了同样的问题。一旦我进入代码并为我删除的其中一个控件执行“显示定义”,就会弹出错误。
我还在其中一个项目上定位了一个更高的框架,所以这也可能就是问题。
答案 34 :(得分:0)
在向asp.net项目添加新页面后发生了这种情况。
我做的是排除页面,让它再次成功构建。
然后我添加了所有代码注释掉的页面。成功。
然后我逐位取消注释代码,然后一切正常。
答案 35 :(得分:-1)
您的项目和VS中的 reviewviewer版本可能有所不同