C#创建程序集并设置版本-在运行时

C#创建程序集并设置版本-在运行时,c#,testing,version,C#,Testing,Version,我正在进行单元测试,我想测试一下: public static string GetVersion(Assembly assembly) { return assembly.GetName().Version.ToString(); } 问题在标题中 这可能吗?我认为通过反射,您可以更改属性的响应,但它本身不会写入程序集 PropertyInfo nameProperty = typeof (Version).GetProperty ("Version"); FieldInfo ver

我正在进行单元测试,我想测试一下:

public static string GetVersion(Assembly assembly)
{
    return assembly.GetName().Version.ToString();
}
问题在标题中


这可能吗?

我认为通过反射,您可以更改属性的响应,但它本身不会写入程序集

PropertyInfo nameProperty = typeof (Version).GetProperty ("Version");
FieldInfo versionField = nameProperty.GetBackingField ();
versionField.SetValue (assemby.GetName().Version, <Version you want>);
PropertyInfo-nameProperty=typeof(Version).GetProperty(“Version”);
FieldInfo versionField=nameProperty.GetBackingField();
versionField.SetValue(assemby.GetName().Version,);

这听起来像是一个年轻人的工作。创建一个“模拟”程序集类型的假类型,并使用该假类型进行测试。比试图让整个世界屈服于你的意志,只是为了测试你的代码是否能处理晦涩难懂的情况要容易得多


环顾四周,有多个库可以创建模拟类型。这里有一个:

您想更改您自己的程序集或传递给该方法的程序集的版本吗?我想创建程序集并将版本设置为programmaticaly。我将程序集传递给我的方法,以测试版本是否正确。好的,程序集A有一个版本,程序集B应该检查A是否有某个版本?程序集A应该以编程方式创建它的版本?单元测试框架本身看起来毫无意义…那是2004年的版本,所以可能不是最好的例子。。。全部基于字符串,不支持编译器,不支持重构。Moq、Rhinomock或TypeMock可能是更好的起点。就像我说的,四处寻找,找到一个适合你的。MSDN链接是谷歌搜索“mock testing.net”肥皂泡时出现的第一个链接。冲洗重复一遍。