经过挖掘和搜索。我发现AssemblyVersion只接受System.Int16这意味着它不能超过 65,535 值。
我需要的输出 *.DLL 程序集版本样式 (YYYY.MDHHMMSS) (2022.02.20.060920)
实际上第二部分第一个零会省略060920它将是 60920,如果小时是 15 = 3 PM,它应该是150920 = 6 位数字。不起作用。我想有一种方法 DateTime.Now.Ticks 但它给出了一个System.Int64并且永远不会适用于版本。
那么,这里是否可以使用任何 5 位数的小时/分钟/秒样式?或者也许是有意义的特殊 5 位数字勾号。
当我使用 Visual Studio 自动增量修订版 1.0.0.* 功能时的主要问题。它给出任意增量值。并且包输出没有排序。
我现在应该怎么做?现在我需要使用“修订时间”字段...您能帮忙吗?
编辑,如果 5 位数字样式不适用于上述情况。我发现文章增量修改一。但它非常非常古老并且使用 JavaScript! https://www.codeproject.com/Tips/161923/Incrementing-AssemblyVersion-revision-number-on-ea
还有一个问题没有得到解答,这个问题仍然是新的, 我想为 Visual Studio 中的每个构建增加构建修订版本
我得到以下代码,该代码获得版本2022.02.20.Revision(修订版在其限制为来自 MSDN 的大值午夜 * 2 期间无用。
编辑: 在 VS 市场中唯一执行此操作的扩展未更新到 Visual Studio 2022 或者他们可能不支持它,我尝试提供以下解决方案:
(如果您有更好的方法,请随时修改答案)
我有一个 winui 3 应用程序,我使用此代码来获取应用程序版本信息:
assembly = Assembly.GetEntryAssembly();
assembly.GetCustomAttribute<AssemblyInformationalVersionAttribute>()?.InformationalVersion
Run Code Online (Sandbox Code Playgroud)
之前,我有 Windows 11 - 22H2 和 Visual Studio 2022 v17.7 + net7.0 并且上述代码的输出如下:
4.0.0
Run Code Online (Sandbox Code Playgroud)
今天我将 Windows(全新安装)更改为 23H2 和 Visual Studio 2022 v17.8 /Visual Studio 2022 v18.0-Preview1 + net8.0 但是当我运行我的应用程序(来自 Visual Studio)时,上述代码的输出几乎是如下:
4.0.0 + ea32asd354ad5a4d5a4sda5a54da54da4das54da4d
Run Code Online (Sandbox Code Playgroud)
我将 .net 版本更改为 net7.0 或者移至以前的版本(来自 git)并且输出很奇怪。但是当我从 MS 商店运行我的应用程序时,输出是正确的,或者当我创建新项目时,输出是正确的,但我不知道为什么我的项目被选中
我下载了zlib.NET,我必须导入一个文件,名为"zlib.net.dll".
我的问题是:如何导入该文件,以便在C#Express 2008中使用它,如"System.zlib.etc"?
谢谢.
我的项目引用了一个引用另一个程序集的程序集(将其称为X)(将其称为Y).
当我尝试编译我的项目时,它要求它应该引用程序集Y.为什么会这样?我在引用程序集X的行上收到以下错误:
"DevExpress.XtraEditors.XtraForm"类型在未引用的程序集中定义.您必须添加对程序集'DevExpress.Utils.v9.1,Version = 9.1.2.0,Culture = neutral,PublicKeyToken = b88d1754d700e49a'的引用.
DevExpress.XtraEditors.XtraForm 是集会Y.
为什么是这样?我以前没见过这种行为.
我创建了一个基本的控制台应用程序来进行这样的测试
short val = 32767;
val++;
Console.WriteLine(val);
Run Code Online (Sandbox Code Playgroud)
这给了我-32768作为预期结果
short val = 32767;
val = val +1;
Console.WriteLine(val);
Run Code Online (Sandbox Code Playgroud)
但这给了我这个错误
错误1**无法将类型'int'隐式转换为'short'.存在显式转换(您是否错过了演员?)
我很好奇是什么导致了这个?
提前致谢,
我正在尝试构建一个xamarin组件.我从Binding项目创建了一个SomeLibrary.dll.使用这个SomeLibrary.dll和组件模板(https://components.xamarin.com/guidelines ),我生成了一个SomeLibrary-1.0.xam组件.
我执行此命令将SomeLibrary组件安装到Xamarin Studio上(因此我可以在将组件提交到商店之前对其进行测试):
mono xamarin-component.exe install /Users/somedeveloper/Desktop/XamarinComponent/component-template-master/SomeLibrary-1.0.xam
(http://forums.xamarin.com/discussion/5640/test-component-packaging推荐)
现在,我正在尝试测试我的SomeLibrary组件.我创建了一个全新的项目,将组件添加到我的项目中,写了几行使用SomeLibrary api,并在构建和运行时遇到以下错误.我在这里迷茫和困惑,任何想法,建议都会很棒.^^.
我从错误中看到的主要是:
error MT2002: Failed to resolve assembly: 'SomeLibrary, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null'
它似乎在抱怨某种PublicKeyToken.这是什么?我是否必须为SomeLibrary组件生成PublicKeyToken?如果是这样,我如何生成PublicKeyToken.
感谢并感谢任何帮助,建议或评论!^ _ ^!,
Building: SomeLibraryComponent (Debug|iPhone)
Detecting signing identity...
Provisioning Profile: XXXXXXXXXXXXXXXXXXXXXXXXXXXX
Signing Identity: "iPhone Developer: XXXXXXXXXX (ALKJLKJSLDKJFLJ)"
App ID: "SDLFJLKSDJF.SomeLibrarycomponent"
Performing main compilation...
/Library/Frameworks/Mono.framework/Versions/3.2.3/bin/mcs /noconfig "/r:/Developer/MonoTouch/usr/lib/mono/2.1/mscorlib.dll" -nostdlib "/out:/Users/somedeveloper/projects/SomeLibraryComponent/SomeLibraryComponent/bin/iPhone/Debug/SomeLibraryComponent.exe" "/r:/Developer/MonoTouch/usr/lib/mono/2.1/System.dll" "/r:/Developer/MonoTouch/usr/lib/mono/2.1/System.Xml.dll" "/r:/Developer/MonoTouch/usr/lib/mono/2.1/System.Core.dll" "/r:/Developer/MonoTouch/usr/lib/mono/2.1/monotouch.dll" "/r:/Users/somedeveloper/projects/SomeLibraryComponent/Components/SomeLibrary-1.0/lib/ios/SomeLibrary.iOS.dll" "/r:/Developer/MonoTouch/usr/lib/mono/2.1/System.Core.dll" /nologo /warn:4 /debug:full /optimize- /codepage:utf8 "/define:DEBUG;__MOBILE__;__IOS__" /t:exe "/Users/somedeveloper/projects/SomeLibraryComponent/SomeLibraryComponent/Main.cs" "/Users/somedeveloper/projects/SomeLibraryComponent/SomeLibraryComponent/AppDelegate.cs" "/Users/somedeveloper/projects/SomeLibraryComponent/SomeLibraryComponent/SomeLibraryComponentViewController.cs" "/Users/somedeveloper/projects/SomeLibraryComponent/SomeLibraryComponent/SomeLibraryComponentViewController.designer.cs"
Compilation succeeded - 1 warning(s)
/Users/somedeveloper/projects/SomeLibraryComponent/SomeLibraryComponent/SomeLibraryComponentViewController.cs(48,24): warning …Run Code Online (Sandbox Code Playgroud) 我找不到User.Identity.Name来自哪个引用程序集.我怎么找到它?我需要将它添加到类库而不是我已经创建的默认MVC 5应用程序,以便我可以访问它吗?
http://msdn.microsoft.com/en-us/library/system.web.httpcontext.user(v=vs.110).aspx
C#类库/ AUser.cs
public class AUser
{
public string Username
{
get
{
return User.Identity.Name // doesn't notice User
}
}
}
Run Code Online (Sandbox Code Playgroud) c# windows-authentication .net-assembly visual-studio-2013 asp.net-mvc-5
在Suzanne Cook的.NET CLR Notes中,她谈到了“ LoadFrom”上下文的危险。特别,
- 如果Load上下文程序集尝试按显示名称加载此程序集,则默认情况下将找不到它(例如,当mscorlib.dll反序列化此程序集时)
- 更糟糕的是,在探测路径上可能会找到具有相同标识但路径不同的程序集,从而导致稍后导致InvalidCastException,MissingMethodException或意外的方法行为。
如何在不显式加载程序集的两个不同版本的情况下通过反序列化来重现此行为?
在已编译的C#程序上使用ILDASM.exe时,它会显示方法中的每条指令都有一个标签.
例如:
IL_0001: ldc.i4.4
IL_0002: stloc.0
IL_0003: ldc.r8 12.34
IL_000c: stloc.1
IL_000d: ldc.r8 3.1415926535897931
IL_0016: stloc.2
IL_0017: ldstr "Ehsan"
IL_001c: stloc.3
IL_001d: ret
Run Code Online (Sandbox Code Playgroud)
为什么是这样?这样做效率不高或者CIL编译器本身是否优化这些标签?
我从git hub下载了pdfiumviewer的源代码.我对该解决方案中的一个项目进行了更改.然后我将该项目添加到我的应用程序中,并将该项目的引用添加到我的应用程序的项目中.我必须取消选中PDfiumViewer项目的签名选项,因为某些dll in该项目是unsigned.我能够成功构建应用程序.但是在运行时我创建了一个PDfiumviewer项目类的对象.它给了我以下错误:
无法加载文件或程序集'PdfiumViewer,Version = 2.11.0.0,Culture = neutral,PublicKeyToken = null'或其依赖项之一.定位的程序集的清单定义与程序集引用不匹配.(HRESULT异常:0x80131040)
程序集的版本号是正确的.那么,为什么我会收到此错误?
.net-assembly ×10
c# ×8
.net ×3
.net-3.5 ×1
cil ×1
components ×1
datetime ×1
il ×1
import ×1
manifest ×1
mono ×1
pdfium ×1
short ×1
versioning ×1
winui-3 ×1
xamarin ×1
xamarin.ios ×1