gpt4 book ai didi

silverlight - NuGet 无法使用 XmlnsDefinitionAttribute 从程序集中提取元数据

转载 作者:行者123 更新时间:2023-12-04 12:49:15 26 4
gpt4 key购买 nike

我正在尝试将 XmlnsDefinitionAttributes 添加到我的程序集中。我使用 TeamCity 来管理我的项目。我的构建配置中有一个 NuGet Package Pack 步骤。

这是失败构建日志的相关部分。

[16:42:08]: Starting: C:\Windows\system32\cmd.exe /c C:\BuildAgent\tools\NuGet.CommandLine.1.5.20905.5.nupkg\tools\NuGet.exe pack C:\BuildAgent\work\5f0e65f22ca1527\MyProject\MyProject.csproj -OutputDirectory \\server\Packages -BasePath C:\BuildAgent\work\5f0e65f22ca1527 -Verbose -Version 1.0.97.1034 -Symbols -Properties Configuration=Release
[16:42:08]: in directory: C:\BuildAgent\work\5f0e65f22ca1527
[16:42:08]: Attempting to build package from 'MyProject.csproj'.
[16:42:09]: Packing files from 'C:\BuildAgent\work\5f0e65f22ca1527\MyProject\Bin\Release'.
[16:42:09]: WARNING: Unable to extract metadata from 'MyProject.dll'.
[16:42:09]: Using 'MyProject.nuspec' for metadata.
[16:42:09]: The replacement token 'title' has no value.
[16:42:09]: Process exited with code 1

成功构建的同一部分如下所示。
[16:42:54]: Starting: C:\Windows\system32\cmd.exe /c C:\BuildAgent\tool\NuGet.CommandLine.1.5.20905.5.nupkg\tools\NuGet.exe pack C:\BuildAgent\work\5f0e65f22ca1527\MyProject\MyProject.csproj -OutputDirectory \\server\Packages -BasePath C:\BuildAgent\work\5f0e65f22ca1527 -Verbose -Version 1.0.98.1035 -Symbols -Properties Configuration=Release
[16:42:54]: in directory: C:\BuildAgent\work\5f0e65f22ca1527
[16:42:54]: Attempting to build package from 'MyProject.csproj'.
[16:42:54]: Packing files from 'C:\BuildAgent\work\5f0e65f22ca1527\MyProject\Bin\Release'.
[16:42:54]: Using 'MyProject.nuspec' for metadata.

此时它输出所有设置。

我的 XmlnsDefinitionAttribute 在 AssemblyInfo.cs 中定义如下
[assembly: XmlnsDefinition("http://schemas.company.com/myproject", "MyProject")]

关于我做错了什么的任何想法?

编辑

这是我完整的 AssemblyInfo.cs
using System.Reflection;
using System.Runtime.InteropServices;
using System.Windows.Markup;

[assembly: AssemblyTitle("MyProject")]
[assembly: AssemblyDescription("MyProject Description")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("Microsoft")]
[assembly: AssemblyProduct("MyProject")]
[assembly: AssemblyCopyright("Copyright © Microsoft 2011")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]

[assembly: ComVisible(false)]

[assembly: Guid("23774732-4f22-4366-a150-03745e93111b")]

[assembly: AssemblyVersion("1.5.2")]
[assembly: AssemblyFileVersion("1.5.2")]

[assembly: XmlnsDefinition("http://schemas.company.com/myproject", "MyProject")]
[assembly: XmlnsDefinition("http://schemas.company.com/myproject", "MyProject.Namespace1")]
[assembly: XmlnsDefinition("http://schemas.company.com/myproject/newschema", "MyProject.NewSchema")]
[assembly: XmlnsDefinition("http://schemas.company.com/myproject/newschema", "MyProject.NewSchema.Namespace1")]

编辑 2

我在本地安装了 NuGet,但遇到了同样的错误。 TeamCity 似乎没有任何效果。

最佳答案

Nuget 将尝试从程序集中获取元数据,通过这样做,它将加载所有程序集属性。

出现此问题的原因是 XmlnsDefinition在 System.Windows 程序集 (System.Windows.dll) 中定义,并且该特定程序集通常不会输出到构建文件夹,因此 NuGet 无法找到它并引发异常(只有在运行 NuGet 时才能发现异常来自代码!)

我发现绕过此问题的最佳方法是确保 System.Windows.dll 文件在运行 NuGet.exe 时与主程序集位于同一文件夹中

关于silverlight - NuGet 无法使用 XmlnsDefinitionAttribute 从程序集中提取元数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7760378/

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