- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在我从未遇到过问题的解决方案中构建一些 C# 项目时遇到了麻烦。构建失败并显示缺少元数据文件的错误。诊断级别的错误描述和 msbuild 日志输出显示了一些令人惊讶的进展。我遇到这个问题的项目之一叫做 WpfControlLibrary
.它引用了解决方案中的以下项目:
Helpers
HunAlmex.Kioszk.Common
HunAlmex.Kioszk.Communication.ImportedServiceContracts
HunAlmex.Kioszk.Data
"D:\Entegro\TFS\Volánbusz TVM\Bugfixes 2018-06"
.
Error CS0006 Metadata file 'D:\Entegro\TFS\Volánbusz TVM\Bugfixes 2018-06\HunAlmex.Kioszk.Data\bin\Debug\WpfControlLibrary.dll' could not be found (in project WpfControlLibrary; file CSC)
WpfControlLibrary
时项目,
CSC
正在寻找一个以
bin\debug
中的项目命名的 dll。项目之一的文件夹
WpfControlLibrary
项目正在引用。
WpfControlLibrary.dll
的 dll在他们的
bin\debug
似乎正确构建这些项目后的文件夹(这些项目是使用正确命名的 dll 和 pdb 文件构建的)。构建错误可能只包含一个丢失的 dll,因为它在第一个错误时失败。
bin\debug
Helpers
的文件夹项目,我看到项目构建正确,然后在构建过程中,
Helpers.dll
文件消失,出现一个名为
WpfControlLibrary.dll
的文件(和 pdb)。构建最终失败,因为它没有找到
Helpers.dll
.
WpfControlLibrary
项目引用没有引用
WpfControlLibrary
.
VS Enterprise 2017 version 15.8.2
产生与
msbuild version 15.8.168.64424
.我最近更新了 VS,在为其他人工作了一段时间后又回到了这个解决方案,所以我不知道更新是否破坏了它。
VS Community 2017 version 15.2
在同一台计算机上构建有问题的项目与
msbuild version 15.1.1012.6693
,这可以很好地构建它们。
Task Parameter:
1> Properties=
1> Configuration=Debug
1> Platform=AnyCPU (TaskId:12)
1> Global Properties: (TaskId:12)
1> Configuration=Debug (TaskId:12)
1> Platform=AnyCPU (TaskId:12)
1> Removing Properties for project "..\Helpers\Helpers.csproj": (TaskId:12)
1> TargetFramework (TaskId:12)
1> Removing Properties for project "..\HunAlmex.Kioszk.Common\HunAlmex.Kioszk.Common.csproj": (TaskId:12)
1> TargetFramework (TaskId:12)
1> Removing Properties for project "..\HunAlmex.Kioszk.Communication.ImportedServiceContracts\HunAlmex.Kioszk.Communication.ImportedServiceContracts.csproj": (TaskId:12)
1> TargetFramework (TaskId:12)
1> Removing Properties for project "..\HunAlmex.Kioszk.Data\HunAlmex.Kioszk.Data.csproj": (TaskId:12)
1> TargetFramework (TaskId:12)
Control Panel / Programs and Features / <.NET Framework version> / Repair
做到这一点吗?在上下文菜单中?
Microsoft.Common.CurrentVersion.targets
每个项目的文件。例如:
1>Target "GetTargetPathWithTargetPlatformMoniker: (TargetId:19)" in file "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\MSBuild\15.0\Bin\Microsoft.Common.CurrentVersion.targets" from project "D:\Entegro\TFS\Volánbusz TVM\Bugfixes 2018-06\Helpers\Helpers.csproj" (target "GetTargetPath" depends on it):
1>Added Item(s):
1> TargetPathWithTargetPlatformMoniker=
1> D:\Entegro\TFS\Volánbusz TVM\Bugfixes 2018-06\Helpers\bin\Debug\Helpers.dll
1> CopyUpToDateMarker=D:\Entegro\TFS\Volánbusz TVM\Bugfixes 2018-06\Helpers\obj\Debug\Helpers.csproj.CopyComplete
1> TargetFrameworkIdentifier=.NETFramework
1> TargetFrameworkVersion=4.0
1> TargetPlatformIdentifier=Windows
1> TargetPlatformMoniker=Windows,Version=7.0
1>Done building target "GetTargetPathWithTargetPlatformMoniker" in project "Helpers.csproj".: (TargetId:19)
<Import Project="$(SolutionDir)\.nuget\NuGet.targets" Condition="Exists('$(SolutionDir)\.nuget\NuGet.targets')" />
<Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
<PropertyGroup>
<ErrorText>This project references NuGet package(s) that are missing on this computer. Enable NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText>
</PropertyGroup>
<Error Condition="!Exists('$(SolutionDir)\.nuget\NuGet.targets')" Text="$([System.String]::Format('$(ErrorText)', '$(SolutionDir)\.nuget\NuGet.targets'))" />
</Target>
Metadata file 'D:\Entegro\VB TVM\Playground\2018-09-04 VS Build Error\BuildFailure\HunAlmex.Kioszk.Data\bin\Debug\WpfControlLibrary.dll could not be found (Project: WpfControlLibrary; File: CSC)
WpfControlLibrary
中排除所有 xaml 文件,我设法消除了构建错误。项目。我在将它们一一重新添加后构建了解决方案,但无法得出结论是哪个导致了错误,因为它有所不同。有一次,通过删除对 HunAlmex.Kioszk.Communication.ImportedServiceContracts 项目的引用,构建错误消失了。
Microsoft.Common.CurrentVersion.targets
file 是一个不错的解决方案,所以我希望有人能想出一个更好的解决方案。提前致谢。
The build restored NuGet packages. Build the project again to include these packages in the build. For more information, see http://www.postsharp.net/links/nuget-restore. WpfControlLibrary D:\Entegro\VB TVM\Playground\2018-09-04 VS Build Error\BuildFailure\WpfControlLibrary\WpfControlLibrary.csproj
WpfControlLibrary
项目。然后我们回到最初的构建错误。
Microsoft.Common.CurrentVersion.targets
无关文件,因为我将它与另一个相同版本的 VS Enterprise 安装进行了比较,并且它们匹配。
PostSharp
NuGet 包版本 4.1.23。将它们更新到最新版本 6.0.27 解决了该问题。解决方案再次构建良好。
最佳答案
更新 - 事实证明,Visual Studio 更新中有重大更改,大约 15.8.3,这导致使用 PostSharp 早期版本的问题 - 我认为 Drew 和我自己在 4.x 上。将 PostSharp 更新到最新版本 6.0.27,在努力处理我的方面中引入的一些重大更改后解决了该问题。
原帖如下。
本周有一个我几个月没碰过的项目也有同样的问题。我在星期二克隆了 repo,NCrunch 构建得很好。昨天,我将 VS2017 更新到 15.8.4 并且 NCrunch 仍在构建它。但是……现在,当我按 F5 时,32 个项目中有 4 个给了我 CS0006。查看详细的构建日志,我看到了:
1>Target "ResolveAssemblyReferences" in file "C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\MSBuild\15.0\Bin\Microsoft.Common.CurrentVersion.targets" from project "D:\Repos\g\Game.Client.Wpf\Game.Client.Wpf_ftfxk2qp_wpftmp.csproj" (target "PostSharp30InspectReferences" depends on it):
1>Using "ResolveAssemblyReference" task from assembly "Microsoft.Build.Tasks.Core, Version=15.1.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a".
1>Task "ResolveAssemblyReference"
1> TargetFrameworkMoniker:
1> .NETFramework,Version=v4.7.2
1> TargetFrameworkMonikerDisplayName:
1> .NET Framework 4.7.2
1> TargetedRuntimeVersion:
1> v4.0.30319
1> Assemblies:
1> System.Core
1> AssemblyFiles:
1> D:\Repos\g\EntityComponentSystem\bin\Debug\Lafs2.dll
1> D:\Repos\g\Framework.Unity\bin\Debug\Lafs2.dll
1> D:\Repos\g\Framework\bin\Debug\Lafs2.dll
1> D:\Repos\g\Game.Controls.Wpf\bin\Debug\Lafs2.dll
1> D:\Repos\g\Game.Messages\bin\Debug\Lafs2.dll
1> D:\Repos\g\Logging.Metrics\bin\Debug\Lafs2.dll
1> D:\Repos\g\Logging\bin\Debug\Lafs2.dll
1> D:\Repos\g\NetCode\bin\Debug\Lafs2.dll
1> D:\Repos\g\Universe.Client\bin\Debug\Lafs2.dll
1> D:\Repos\g\Universe.Physics\bin\Debug\Lafs2.dll
1> D:\Repos\g\Universe\bin\Debug\Lafs2.dll
1> C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.7.2\mscorlib.dll
关于c# - msbuild 使用了错误的程序集名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52187407/
我有以下一段 msbuild 代码: C:\DirA\ C:\DirB\ '$(DirA)%(Filename)%(Extension)')">
我有一个 master.proj msbuild 脚本,它使用 MSBuild 任务构建多个项目。 这是一个典型的例子: 但是,我的问题是,如果在命令行上给出更多属性,它们不会传递给 MSB
我编写了一个自定义 MSBuild 任务,将其称为 TaskA,它解析文件并对其进行一些处理。我现在想编写另一个 MSBUild 任务,将其称为 TaskB,它在其中使用 TaskA。我知道我可以像使
我有好几次无法在 csproj 文件 (.NET Core) 中找到有关有效元素的信息。特别是具有 Content 和 Include/Exclude/Update/CopyToPublishDire
鉴于这样的事情.. DB1 Database
我有一个msbuild目标,它具有一个Import标签,如下所示: 在Company.LifeCycle.targets文件的内容中,如何以编程方式获取当前目录(在这种情况下为: C:\Progra
我在MSBuild脚本中创建的项目组的范围设置方面遇到一些问题。基本上,我想要做的是有两个不同的目标-我们将它们称为RunUnitTests和RunIntegrationTests-生成一个名为Tes
我希望下面的代码为 List 和 List2 生成相同的项目(我在搜索路径中有一个 cpp1 项目)。 '..\..\..\projects\**\%(identity).vcx
我正在编写一个 MSBuild 任务来升级数据库(完整源代码 here),遇到了一个我不知道如何处理的错误/设计特征。基本上,如果我声明: public int? TargetVersion {
MSBuild 针对最新目标发出以下消息: Skipping target "MyTarget" because all output files are up-to-date with respec
我正在为 msbuild 编写一个脚本,它应该在一个步骤中制作两批。 示例:2 个项目组 这两个组应该相互循环: 我希望 msbuild 使两个批次的结果都给出 1 A 2
我正在使用构建定义构建项目。执行此操作时,还会执行代码分析。代码分析输出各种文件,包括: ConsoleApplication2.exe.CodeAnalysisLog.xml ConsoleAppl
我正在尝试使用 MSBuild 从文本文件中读取文件列表,然后执行递归复制,将这些目录文件的内容复制到某个暂存区,同时排除某些扩展名(例如 .tmp 文件) 我已经设法使用 CreateItem 和
我有一个MSBuild项目,我希望将当前日期添加到正在创建的zip文件中。 我正在使用MSBuildCommunityTasks。 在网站http://msbuildtasks.tigris.or
我正在将一个 Web 应用程序包从 MSBuild 命令行部署到 IIS6 上的 MSDepSvc,它使用基本身份验证与以下命令一起正常工作: MSBuild.exe Web.csproj /p:
我有以下 MSBuild 脚本: test1;test2;test3 如果我调用不带任何参数的脚本,我会得
对于不是项目文件而是更复杂的构建脚本的 MSBuild 文件是否有标准文件扩展名? 我正在考虑 .msbuild.proj 以避免与其他 .proj 文件(我知道实际上是 MSBuild 文件)混淆。
假设我有两个耗时的目标,并且我想并行执行它们。假设一个目标运行单元测试,另一个目标生成一些文档。我尝试过这种方法: root.targets:
看起来(至少)有两个选项可以让 nant 使用 csproj 文件:使用 NAntContrib 的任务或直接使用 msbuild.exe (例如 codecampserver )。我读得对吗?如果是
如何获取内置 MSBuild 变量的列表? 我需要知道如何确定当前项目的 csproj 名称,并且认为了解我还能在 MSBuild 中找到什么内容可能会很有用。 最佳答案 来自 Microsoft 文
我是一名优秀的程序员,十分优秀!