问题标签 [assemblyinfo]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
15160 浏览

visual-studio-2008 - “LNK2022:元数据操作失败”让我发疯

我有很多项目的大解决方案,使用 VS2008 SP1,并且每天至少遇到一次 LNK2022 错误。如果我完全重建解决方案,它构建得很好,但这并不有趣。

它发生在依赖 DLL 被“不显着”地改变(即没有改变任何方法或类),并且后来构建了引用项目时。合并元数据时失败 - 不管这意味着什么。

首先要注意的是,共享 DLL 是#using从多个 .CPP 文件中引用的。
第二件事是,如果我从共享 DLL 中删除 AssemblyInfo.cpp,那么问题就会消失(但我不确定这是否是一个明智的修复?)。

我已尽可能将其缩小为包含 2 个 CLR 类库项目的以下解决方案( xxx项目依赖于Shared):
替代文字

以下是每个文件的内容:

共享.cpp:

英寸:

xxx.cpp 和 xxx2.cpp:

要重现,首先重建解决方案。它会建立好的。
现在保存Shared.cpp并构建解决方案,它将构建良好并显示:

现在保存xxx.cpp并构建解决方案,它失败并显示以下消息:

编辑
xxx.obj 和 xxx2.obj 的 IL 之间的区别如下:

(for xxx.obj)
// AssemblyRef #2 (23000002)
// ---------------------------------- ---------------------
// 令牌:0x23000002
// 公钥或令牌:
// 名称:共享
// 版本:1.0.3412.16 606
// 主要版本: 0x00000001
// 次要版本: 0x00000000
// 内部版本号: 0x00000d54
// 修订号: 0x000040 de
// 区域设置:
// HashValue Blob: 1c bb 8f 13 7e ba 0a c7 26 c6 fc cb f9 ed 71 bf 5d ab b0 c0
//标志:[无](00000000)

(for xxx2.obj)
// AssemblyRef #2 (23000002)
// ---------------------------------- ---------------------
// 令牌:0x23000002
// 公钥或令牌:
// 名称:共享
// 版本:1.0.3412.16 585
// 主要版本: 0x00000001
// 次要版本: 0x00000000
// 内部版本号: 0x00000d54
// 修订号: 0x000040 c9
// 区域设置:
// HashValue Blob: 64 af d3 12 9d e3 f6 2b 59 ac ff e5 3b 38 f8 fc 6d f4 d8 b5
//标志:[无](00000000)

这对我来说意味着 xxx2.obj 仍在使用旧版本的 Shared.dll,这与使用更新的 Shared.dll 的 xxx.obj 冲突。那么我该如何解决呢?

0 投票
4 回答
7422 浏览

svn - AssemblyInfo.cs 是否应该放在版本控制中?

我有一个使用 CruiseControl 的自动构建系统。我正在使用 SvnRevisionLabeller 来获取要使用的版本字符串。有了这个字符串,我可以使用 nant 来更新 AssemblyInfo.cs,这样当我构建它时,它就有了正确的构建字符串。我也可以使用这个 CC 标签来标记 subversion 存储库。

所以一切都对齐了
- CCNet 构建标签
- 可执行文件(程序集信息)
- 版本控制(subverson 标签)

现在我遇到的问题是,如果我想尝试从存储库中重建旧图像。由于 AssemblyInfo.cs 不受版本控制,而是一个生成的文件,因此当我现在尝试构建时,版本控制信息将与使用 CruiseControl 构建此版本的存储库时不同。我希望能够生成完全相同的图像,无论它是在 CC 构建期间还是在以后从 Subversion 签出时构建的。

我知道通常不建议这样做,但是我是否应该在每次构建后签入 assemblyInfo.cs 文件,以便在随后从 svn checkout 构建时使用正确的版本信息?

谢谢,利亚姆

0 投票
1 回答
575 浏览

assemblyinfo - 如何在构建过程中使用新构建和修订更新组件版本信息?

我必须在 assemblyinfo.cs 文件的程序集版本中更新内部版本号。我编写了一个自定义任务,在开始构建之前更新了解决方案下的所有 assmeblyinfo.cs。但是当我更改此文件并尝试构建时,我的一些 dll 引用了其他无法编译的 dll,因为它们找不到特定版本的程序集。我也有一些使用强名称程序集的文件。不知道如何更新他们的版本。我已经尝试将特定版本设置为 false,但仍然会出现同样的错误。

你能告诉我用增量构建号更新 assemblyinfo.cs 的好方法吗?

PS 我正在使用 NANT 任务通过构建实现自动化。

0 投票
2 回答
12063 浏览

c# - ThemeInfo 属性有什么用?

每当我创建新的 WPF 应用程序或 WPF 用户控件库时,该AssemblyInfo.cs文件都包含以下属性:

这个ThemeInfo属性有什么用?如果我删除它会破坏任何东西吗?

0 投票
2 回答
5853 浏览

c++ - Win32 DLL 项目中是否有“AssemblyInfo.cs”的等价物?

我已经看过这个话题,但我需要翻转答案。如何在 Win32 DLL 中设置程序集信息属性*?

0 投票
5 回答
1793 浏览

c# - 是否可以更改 C# 项目的版本格式?

而不是major.minor.build.revision 格式,我想使用日期和时间作为版本号。更像是日.月.年.时间。有没有办法改变 AssemblyInfo.cs 中 AssemblyVersion 属性的格式?

0 投票
1 回答
1128 浏览

c# - 现在 Log4Net.config 没有被加载,因为我将我的包装类移动到它自己的类项目中

谁能帮忙,我一直在成功使用 log4net 我基本上在我的 web 项目中有一个静态类(包装器),我通过在 assemblyinfo.cs 中添加这个名为 log4net.config 的外部文件加载我的配置

一切都好!,现在我决定将我的静态类移动到它自己的类项目中,这样我就可以与其他项目共享我的静态类(包装器)。

log4net.config 仍在 webproject 中,但当然它现在没有加载,我可以告诉这一点,因为在我的静态类(现在它自己的项目)中我正在做

并且 IsInfoEnabled 返回 false,并且没有记录任何内容,没有读取 .config 文件...

记住 Log4net 包装器(静态类)在它自己的类项目中,但 .config 文件在我拥有的 web 项目中。我需要这样,因为 .config 可以逐个项目地更改,但通常包装器不会.

当然,我想我会创建一个抽象类,然后在我的 webproject 中继承并在需要时覆盖任何东西......但是当然你不能继承静态类甚至是抽象的......

我相信其他人已经遇到过这个问题,有什么想法吗?..任何帮助真的很感激

0 投票
1 回答
2331 浏览

visual-studio - VS.net 在一个解决方案中为多个项目设置版本

我正在尝试更新解决方案中的许多不同项目以获得新的版本号。有没有一种简单的方法来同步所有项目文件版本和 clickonce 选项的版本号?

回答

最后通过写一个小工具解决了这个问题:

0 投票
2 回答
2862 浏览

c# - 从 .csproj 中访问 solutioninfo.cs 和 assemblyinfo.cs

我需要从我的 .csproj 文件中的 solutioninfo.cs 和 assemblyinfo.cs 访问一些信息并将其用作属性。

使用的价值

在我的 csproj 中:

有没有办法访问这些值?

0 投票
5 回答
10177 浏览

asp.net - 在 ASP.NET 网站中指定版本号的位置

所以我有一个没有 AssemblyInfo.cs 文件或 Bin 文件夹或类似的东西的 ASP.NET“网站”(而不是 Web 应用程序)。

我想有一种方法来指定程序集版本号(例如 7.0.2.0)。在 Web 应用程序中,您可以在 AssemblyInfo.cs 文件中执行此操作。

我尝试添加带有 AssemblyInfo.cs 文件的 Properties 文件夹,但我认为它没有被拾取 - 因为当我调用 Assembly.GetExecutingAssembly().GetName().Version.ToString() 时,我得到 0.0.0.0

那么:我必须做什么才能让 AssemblyInfo.cs 正常工作,或者如何指定版本号?