Tag: 版本

获取应用程序版本始终返回1.0.0.0

我想在我的应用程序中显示应用程序版本。 我做了一些研究,我试过这个: System.Reflection.Assembly assembly = System.Reflection.Assembly.GetExecutingAssembly(); Version version = assembly.GetName().Version; _applicationVersion = version.Major + “.” + version.Minor + “.” + version.Build; 但我的版本变量总是显示1.0.0.0 当我发布我的应用程序并将其安装在我的计算机上时,它在我的程序列表中显示它是1.0.1.1版本。 这是我希望我的应用程序显示的数字 有人有解决方案吗? 编辑 我的问题是我只是在我的visual studio项目的属性中设置发布版本。 这似乎不是您从我上面发布的代码中获得的应用程序版本。 我发现AssemblyInfo.cs文件也有2个属性: [assembly: AssemblyVersion(“xxxx”)] [assembly: AssemblyFileVersion(“xxxx”)] 这解决了我的第一个问题。 但是这两个版本号之间有什么区别,为什么你想要有两个不同的版本? 发布版本代表什么? 是不是总有一个应用程序的版本号?

最佳实践以及如何在客户端的C#包装器中支持不同版本的REST API

我编写了一个C#包装器来支持我们公司项目的REST API。 但是,这些API现在正在发生变化 – 就URL而言(可能会在URL中引入版本号)和它期望的数据对象并返回。 我想知道在我的c#wrapper中支持不同版本的REST API的最佳做法是什么。 我应该怎么做 – 在代码设计和类定义方面 – 以便一个包装器可以与不同版本的API无缝地工作 – 并且它也应该是可扩展的 – 以便将来可以轻松支持任何更新版本的API 。 我编写的c#包装器正在使用我们的Web服务API。 我已经在使用RestSharp客户端在c#wrapper中使用我们的Web服务API。

无法从我的Silverlight应用程序调用Assembly.GetName()

我想在我的应用程序中显示我的应用程序版本号,最简单的方法是使用程序集的版本号。 var assembly = System.Reflection.Assembly.GetExecutingAssembly(); var name = assembly.GetName(); return String.Format(“Version {0}.{1}”, name.Version.Major, name.Version.Minor); 我可以毫无问题地获得正在执行的汇编,但是对GetName()的调用会返回带有此消息的MethodAccessException 尝试使用安全透明方法’MainPage..ctor()’来访问安全关键方法’System.Reflection.Assembly.GetName()’失败。 为什么会发生这种情况,有什么我可以做的,如果没有,还有其他方法来检索汇编版本吗?

C#程序如何使用任何版本的COM dll?

这个问题是这个问题的续集 我们正在创建一个用C ++编写的DLL,提供对某些硬件的访问。 这个DLL实现并使用COM接口访问。 我们还有一个C#程序,它通过COM对象使用这个dll。 我们遇到了版本问题。 实际上,在运行C#程序时,它绝对想要使用编译时使用的精确COM / C ++ DLL版本。 即如果C#程序是使用COM / C ++ dll 1.2.3.4编译的,那么程序将拒绝使用COM / C ++ dll 1.2.3.5运行。 Unhandled Exception: System.TypeInitializationException: The type initializer for ‘MyDllVerify.App’ threw an exception. —> System.IO.FileNotFoundException: Could not load file or assembly ‘MyCorp.MyDll.Interop, Version=1.2.3.4, Culture =neutral, PublicKeyToken=ced78d295d1e0f2b’ or one of its dependencies. The system cannot find […]

获取Office Addin发布版本

我有一个Outlook Addin,我需要获得发布版本。 我不是指大会版本,文件版本或Office版本。 (这是我发现的全部)。 一些C#代码会很不错! 黑色XML来自项目文件。

如何自动将版本号插入AssemblyName

我正在努力建立这个问题: 从MSBuild中的文件中读取单个值 我的目标是有一个地方放置在多个项目中使用的版本号,我还想要其中一个项目的DLL文件名中的部分版本号。 基于上面的问题,我已经得到了第一部分,但我对第二部分遇到了困难,并希望得到一些指导。 在我的解决方案中,我设置了一个名为Version.txt的纯文本文件,仅包含我的完整版本号: 1.1.0.0 在我的两个项目中,我打开了AssemblyInfo.cs文件并删除了AssemblyVersion和AssemblyFileVersion项,然后修改了两个项目以在单独的文件中生成它们,如上面的问题所述。 现在,当我构建时,我为每个项目生成一个生成的Properties \ Version.cs文件,该文件用于构建EXE / DLL并在其文件属性中显示为“1.1.0.0”。 这正是我想要的。 对于DLL,我想命名程序集“filename.v1.1.dll”,其中“1.1”来自上面Version.txt中的前两个组件。 只要我能在EXE / DLL属性中获得完整的“1.1.0.0”并在DLL文件名中获得“1.1”,我就可以灵活地使用Version.txt的格式。 为了试试这个,我修改了DLL的csproj文件,使其具有: dllfile dllfile.v$(VersionNumber) 当然,这会在文件名中插入完整版本号,这是我不想要的。 有没有人有关于如何进行的任何提示? 谢谢。 编辑:我已经能够通过将以下内容添加到我的.csproj BeforeBuild目标中来提取版本号的主要/次要组件: $(VersionNumber.IndexOf(‘.’)) 0 $(VersionNumberFirstDotIndex) $([MsBuild]::Add(1, $(VersionNumberFirstDotIndex))) $(VersionNumber.IndexOf(‘.’, $(VersionNumberMinorStart))) $([MSBuild]::Subtract($([MSBuild]::Subtract($(VersionNumberSecondDotIndex), $(VersionNumberFirstDotIndex))), 1)) $(VersionNumber.Substring($(VersionNumberMajorStart), $(VersionNumberMajorLen))) $(VersionNumber.Substring($(VersionNumberMinorStart), $(VersionNumberMinorLen))) $(VersionNumberMajor).$(VersionNumberMinor) 我现在唯一缺少的是如何将此VersionNumberShort转换为DLL文件名。 除非有人有更好的想法,否则我可以采取Peter的建议并使用Move任务: 由于我需要与以前相同的属性定义,因此我将上面的代码段移动到“Common”目标中,并在此处显示的构建和清理任务中引用它。 彼得 – 如果你想把你的评论作为答案,我会接受它。 谢谢! 编辑:按照jdlugosz的回答,我尝试在我的任务中设置AssemblyName。 不幸的是,根据顶部列出的原始示例,这似乎仍然没有任何影响: … dllfile.v$(VersionNumber) 我尝试从Visual Studio Developer命令提示符运行MSBuild: msbuild […]

设置codeDOM文件的文件版本

我正在寻找为使用codeDOM生成的exe文件设置文件版本的任何方法。 我的总是0.0.0.0。 编程显然是首选,但在这一点上,任何东西都会好于没有。

如何在.net 3.5中将字符串转换为版本?

我想将3.5中创建的软件版本与旧版本进行比较。 如果我尝试比较4.0中的版本,那么使用Version.Parse很容易,但在早期版本中,此function不存在。 我试图通过使用字符串比较来比较它,但仍然无法获得所需的输出,因为字符串比较不允许我与次要版本或主要版本进行比较。 提前致谢。

匹配版本号部分与正则表达式

我正在尝试将版本号(Major.Minor.Build.Revision)的各个部分与C#正则表达式进行匹配。 但是,我对写Regex很陌生,甚至使用Expresso也certificate有点困难。 现在,我有这个: (?\d*)\.(?\d*)\.(?\d*)\.(?\d*) 这有效,但要求版本号的每个部分都存在。 我想做的还是匹配版本,如: 2.13 在这种情况下,构建和修订组需要返回空值。 如果我发现这一切都错了,请随意提出一个更好的方法。

使用相同dll的2个不同版本?

我已经获得了2个预编译的dll: Common.Data, Version=1.0.0.0, Culture=neutral, PublicKeyToken=f3b12eb6de839f43, processorArchitecture=MSIL Common.Data, Version=2.0.0.0, Culture=neutral, PublicKeyToken=f3b12eb6de839f43, processorArchitecture=MSIL API差异示例: 我正在尝试将两者加载到一个项目中,以执行以下操作: extern alias v10; extern alias v20; private static void UpgradeUser() { // Load old user var userOld = new v10::Common.Data.UserData(); userOld.loadData(“user.dat”); // Create new user var userNew = new v20::Common.Data.UserData(); // Copy properties userNew.FirstName = userOld._firstName; userNew.LastName = userOld._lastName; userNew.Age = userOld._age; […]