有三个程序集版本属性.有什么区别?如果我使用AssemblyVersion
并忽略其余部分可以吗?
MSDN说:
指定要归属的程序集的版本.
指示编译器使用Win32文件版本资源的特定版本号.Win32文件版本不需要与程序集的版本号相同.
定义程序集清单的其他版本信息.
这是使用装配属性的最佳做法的后续行动?
假设我正在创建一个名为ConsoleApp2的应用程序。
由于我使用了一些第三方库,我的默认 app.config 文件正在生成类似的代码
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="Newtonsoft.Json" publicKeyToken="30ad4fe6b2a6aeed" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-12.0.0.0" newVersion="12.0.0.0" />
</dependentAssembly>
</assemblyBinding>
</runtime>
Run Code Online (Sandbox Code Playgroud)
那是因为我的解决方案引用了一个库的不同版本,所以它需要告诉大家:“嘿,如果你要找这个库的任何旧版本,就用新版本”。没关系。
问题是我想定义一个单独的配置文件“test.exe.config”,在那里我有一些设置并摆脱自动生成的设置。
为了告诉我的应用程序有关新配置文件的信息,我使用了如下代码
AppDomain.CurrentDomain.SetData("APP_CONFIG_FILE", "test.exe.config");
Run Code Online (Sandbox Code Playgroud)
这(几乎)完美地工作。我在那里写了“几乎”,因为虽然该<appSettings>
部分被正确读取,但该<runtime>
部分并未在我的自定义配置文件中查看,但应用程序在默认配置文件中查找它,这是一个问题,因为我想以后可以删除那个。
那么,我如何告诉我的应用程序也<runtime>
从我的自定义配置文件中读取信息?
重现我的问题的简单示例如下:
创建一个名为ClassLibrary2 ( .Net Framework v4.6 )的库,包含一个类,如下所示
using Newtonsoft.Json.Linq;
using System;
namespace ClassLibrary2
{
public class Class1
{
public Class1()
{
var json = new JObject();
json.Add("Succeed?", true);
Reash = json.ToString();
}
public String …
Run Code Online (Sandbox Code Playgroud)