Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/270.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# c AssemblyInfo.cs“bug”_C#_.net Assembly - Fatal编程技术网

C# c AssemblyInfo.cs“bug”

C# c AssemblyInfo.cs“bug”,c#,.net-assembly,C#,.net Assembly,有人能解释一下如何正确制作装配信息吗 这是我的AssemblyInfo.cs: [assembly: AssemblyTitle("Title")] [assembly: AssemblyDescription("Description")] [assembly: AssemblyConfiguration("")] [assembly: AssemblyCompany("Mycompany")] [assembly: AssemblyProduct("ProductName")] [assem

有人能解释一下如何正确制作装配信息吗

这是我的AssemblyInfo.cs:

[assembly: AssemblyTitle("Title")]
[assembly: AssemblyDescription("Description")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("Mycompany")]
[assembly: AssemblyProduct("ProductName")]
[assembly: AssemblyCopyright("Copyright ©")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]

[assembly: ComVisible(true)]

[assembly: Guid("xxxxxx-xxxxx-xxxxx")]    

[assembly: AssemblyVersion("1.0")]
[assembly: AssemblyFileVersion("1.0")]
[assembly: NeutralResourcesLanguageAttribute("en")]
这是它在属性窗口中的显示方式:

您可以看到,说明和语言与AssemblyInfo.cs中的不同

AssemblyCompany也有问题,因为当我在ccleaner中打开启动键时,我的程序的company字段为空


我做错了什么?

Windows不知道有关托管程序集属性的bean。您实际看到的是嵌入在程序集中的非托管资源。C编译器根据AssemblyInfo.cs文件中的属性值自动生成它。您可以通过File+Open+File查看它,选择您的.dll或.exe文件。双击版本。1资源打开非托管资源编辑器,即在C++项目中使用的编辑器。

从托管属性到非托管版本资源的映射不完善。例如,请注意,您无法看到[AssemblyVersion]属性值。在.NET中非常重要,Windows仅显示[AssemblyFileVersion]属性值

文化就是这样一种阻抗失配。包含代码的.NET程序集始终将AssemblyName.CultureName设置为*。只有附属程序集具有区域性。和title vs description,非托管版本资源只有一个符合条件的字段,他们选择[AssemblyTitle]映射到该字段


您可以使用资源脚本创建自己的非托管版本资源,并使用rc.exe进行编译。您可以使用Project+属性、应用程序选项卡、资源文件单选按钮来告诉C编译器。您不太可能喜欢它,不断更新和重新编译资源脚本以保持版本号同步会让您很快筋疲力尽,除非您能够自动执行该操作。

我无法很快找到详细信息,但您在那里设置了程序集信息.NET,而不是所有这些属性都传播到可执行的Win32 PE。“详细信息”选项卡显示后者的详细信息。对于标题/说明,为该属性指定的信息将显示在程序集的Windows文件属性对话框的详细信息选项卡上。属性名为File description.NeutralResourcesLanguageAttribute用于.net程序集。language属性供非托管使用。看起来像AssemblyTitle映射到文件描述。从代码和您的屏幕截图来看,这似乎很明显。我使用的是Visual Studio Express,所以我没有资源编辑器。。。是否有一些教程可以让我学习设置.exe属性的正确方法ccleaner picture上的所有程序都有发布者名称,因此必须有一些正常且简单的方法来实现这一点?它几乎肯定会向您显示AuthentiCode证书的发布者。是的,它们是正常的。不,简单这个词不太合适。证书要花钱,你要花上数百美元才能让另一家公司向你的客户证明你是值得信赖的。