问题标签 [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 回答
3745 浏览

c# - AssemblyInfo.cs , .net 应用程序版本

我想在我的 .net 应用程序中保留版本并让 .net 来管理它。我真的不明白它是如何工作的。是每个项目的版本号吗?.net 如何管理版本?如果有人可以请简要解释一下,我将不胜感激。

0 投票
2 回答
3654 浏览

.net - AssemblyInfo.cs 中的文件版本未反映在 Windows 资源管理器文件属性中?

我有一个包含 AssemblyInfo.cs 文件的 VS2010 项目。这有:

[assembly: AssemblyFileVersion("10.0.1.0")]

当我运行我的应用程序并从正在执行的程序集中询问文件版本时,它会选择 10.0.1 没问题。但是,如果我在 Windows 资源管理器中右键单击 .exe 文件并打开属性对话框 - 详细信息选项卡显示文件版本为 10.0.0.0(!)

为什么 Windows 看不到文件版本的 10.0.1?我肯定错过了什么...

附加信息:如果我将版本资源添加到我的应用程序的 .res 文件中,则信息会显示在已编译的可执行文件中,但如果我没有版本资源中的信息,则编译的 exe 会忽略该文件和“信息”(即产品)AssemblyInfo.cs 中的版本属性。

0 投票
1 回答
508 浏览

c# - 制作 C++/MFC 应用程序以从其他应用程序中提取 AssemblyInfo?

我正在尝试制作一个 C++/MFC 应用程序(所谓的“更新应用程序”),它可以从用 C#/.NET 3.5 编写的其他应用程序中提取 AssemblyVersion 信息。
所以我可以根据我能得到的版本信息来更新我的C#程序。

我很确定这是可能的,但我不知道哪种方式是最好的方式。

我想知道一些我可以在网上搜索的技术或关键字。

直接的解释也将不胜感激。

0 投票
3 回答
1327 浏览

visual-studio - 如何根据某些标准检查解决方案中的所有项目?

我需要让解决方案中的所有项目都包含一些额外的构建操作,例如 StyleCop 验证、AssemblyInfo 的自动生成等。

我的想法是进行某种解决方案范围的预构建事件,该事件将检查所有项目文件是否包含与特定 xPath 匹配的节点。这不是一个难点,它可以通过自定义构建任务或一些第三方 Xml 处理任务来解决。我还没有深入研究它,但它绝对不会成为值得一提的问题。

问题是如何
1) 使用一些自定义任务扩展解决方案文件?它不应该是解决方案的必要组成部分。这是需要的,但在从 VS 构建时可以省略,有一些特定的命令行来执行它就足够了。
2)如果不可能,“解决方案范围的预构建事件? ”中描述了选项。它很hacky,但如果没有其他选择,我会使用它。但是如何从解决方案文件中获取项目文件列表?请考虑到包含解决方案的文件夹可能包含不应检查的额外项目文件,因此仅枚举所有 ***.*proj 不是一个选项。

PS也欢迎针对整个问题的任何其他选项:)

0 投票
3 回答
6305 浏览

.net - 在哪里可以找到程序集配置信息?

在 AssemblyInfo.cs 文件中,我有以下小节:

组装完成后在哪里可以看到这些信息?由于文件详细信息中没有任何内容:

在此处输入图像描述

还能在哪里找到?

问候

0 投票
1 回答
1171 浏览

c# - Application.UserAppDataPath 奇怪的行为

当我使用 Application.UserAppDataPath 访问配置时,我得到了 ArgumentException“路径中的非法字符”。
根据微软的说法,这不是一个错误,而是一个特性;

在 FileVersionInfo.ProductVersion(以及因此在 Application.ProductVersion 和 Application.UserAppDataPath)中获取非法字符的唯一方法是,当您在程序集上也有 AssemblyFileVersion 时。转到 AssemblyFileVersion 的值将逐字复制到 Win32 资源并覆盖您传递给 AssemblyVersion 的值。此行为是设计使然。

因此,通过在 AssemblyInfo.cs 中注释 [assembly: AssemblyFileVersion("...")] 可以解决此异常。

问题是:我正在编写一些带有 winforms 控件的 .dll。获得此路径的最简单设计是使用 Application.UserAppDataPath。但如果使用 Application.UserAppDataPath,则使用此库的开发人员无法为其 .exe 文件使用 AssemblyFileVersion。(虽然 AssemblyFileVersion 默认在 AssemblyInfo.cs 中)

此外,我找不到 Microsoft 提供的任何信息,表明使用 AssemblyFileVersion 应该会阻止我的应用程序并且有人不应该使用它。所以我,实际上,不能从这个图书馆用户那里问它。

在这种奇怪的情况下是否有原因或逻辑?获得没有此类问题的 Application.UserAppDataPath 路径的更好解决方法是什么?

虽然我有 AssemblyFileVersion 并且 Application.UserAppDataPath 会引发异常,但应用程序可以工作,我可以通过这条路径

配置文件在那里,没有问题。但是,当然,这是一种丑陋的方式。

0 投票
1 回答
773 浏览

assemblyinfo - 使用内部使用指向全局程序集信息文件的链接的类库程序集

我在下面的当前情况下苦苦挣扎。我在 .NET 4 中使用 vs 2010 和 C#:

  • 我有一个单独的解决方案(称为解决方案 A),其中包含 2 个类库项目(称为 B 和 C)。项目 B 有一个指向项目 C 中的“GlobalAssemblyInfo.cs”文件的链接,但是项目 B 不依赖于项目 C,它只是有一个指向项目 C 中的 .cs 文件的链接。这一切都很好编译并生成 B.dll + C.dll。

  • 现在我有一个完全不同的解决方案(称为 D),其中只有一个控制台应用程序项目(称为 E)。现在在项目 E 中,我添加了对 B.dll 的引用。当我编译一切都很好。

问题是当我调试项目 E 时,当我到达使用项目 B(或 B.dll)中的任何对象的代码行时,我收到一条错误消息,提示“FileNotFoundException 未处理的异常。无法加载文件或程序集 B” ,其中 B 是程序集 B 的完全限定名称。

我该如何解决这个问题?我知道问题是由项目 C 中的“GlobalAssemblyInfo.cs”文件的链接引起的,因为当我删除/删除此链接时,一切正常,我可以在程序集 B 中使用对象。

如果您需要了解什么是链接http://bloggingabout.net/blogs/jschreuder/archive/2006/11/02/Centralizing-AssemblyInfo-settings_2C00_- or-simplify-versioning-of-solutions.aspx

0 投票
6 回答
1554 浏览

c# - .net:DLL 与 EXE 的版本号?

我最近一直在对我的产品 (exe) 进行版本控制,并且每次都在 assemblyinfo.cs 中增加内部版本号。

效果很好,我的产品目前是 1.5.xx 版本,所以每次成功构建时增加 4 位数。

现在我有了我的 DLL,它们也是我的应用程序的一部分。

我怎么能对这些进行版本控制?我应该将这些版本与我的 exe 相同,即 1.5.xx 还是应该创建另一个不同的版本号?

这是我目前有点困惑的地方。

当我的产品功能增加时,我可以将 1.5 提高到 2.0,但这会将我的 DLL 放在哪里?

0 投票
1 回答
873 浏览

msbuild - MSBuild 扩展包

我在搞乱一些 TFS 构建定义文件并遇到了一个小问题。我选择了 MSBuild 扩展包,如此所述,但由于某种原因,我的 assemblyInfo.cs 文件没有从 TFS2010 中检出。此任务是否应该检查所有指定的文件并更改程序集版本?它会正确更改所有文件中的版本,但之后没有待处理的更改。有任何想法吗?

0 投票
1 回答
2237 浏览

versioning - TeamCity AssemblyInfo 修补程序修补文件,但 DLL 版本不“正确”

这是我的 assemblyinfo.cs 版本字符串在预构建时的样子:

在构建期间,修补程序执行我想要的操作,修改文件:

但在构建过程中的某个时刻,它也会这样做:

然后当构建完成时,它又看起来像这样:

当我在 Windows 资源管理器中右键单击生成的 DLL 时,点击属性,然后转到详细信息选项卡,文件版本为“2.0.921.0”,产品版本为“2.0.921.00”。

我也得到“2.0.921.0”Assembly.GetExecutingAssembly().GetName().Version.ToString()

我的构建有 2 个构建步骤,一个是 VS 解决方案构建,另一个是命令行步骤,它只是将 DLL 复制到开发服务器。

我不想粘贴整个构建日志,因为它很大,但以下是我认为的亮点:

编辑 我们的 TeamCity 版本号:6.5.1(内部版本 17834)

编辑 我刚刚升级到 6.5.4(内部版本 18046)。行为没有变化。