Из sed one-liners :
# delete the last 10 lines of a file
sed -e :a -e '$d;N;2,10ba' -e 'P;D' # method 1
sed -n -e :a -e '1,10!{P;N;D;};N;ba' # method 2
Кажется, это то, что вы любите.
Я нашел следующий в этой статье .
using System.Reflection;
using System.IO;
...
// Get current and updated assemblies
AssemblyName currentAssemblyName = AssemblyName.GetAssemblyName(currentAssemblyPath);
AssemblyName updatedAssemblyName = AssemblyName.GetAssemblyName(updatedAssemblyPath);
// Compare both versions
if (updatedAssemblyName.Version.CompareTo(currentAssemblyName.Version) <= 0)
{
// There's nothing to update
return;
}
// Update older version
File.Copy(updatedAssemblyPath, currentAssemblyPath, true);
В зависимости от файлов одна опция могла бы быть FileVersionInfo
- т.е.
FileVersionInfo fvi = FileVersionInfo.GetVersionInfo(path)
string ver = fvi.FileVersion;
, проблема состоит в том, что это зависит от кода, имеющего эти [AssemblyFileVersion]
атрибут и она соответствующий эти [AssemblyVersion]
атрибут.
я думаю, что посмотрел бы на опции AssemblyName, предложенные другими сначала, все же.
Используйте AssemblyName.GetAssemblyName("assembly.dll");
, затем проанализируйте имя. Согласно MSDN:
Это будет только работать, если файл будет содержать манифест сборки. Этот метод заставляет файл быть открытым и закрытым, но блок не добавляется к этому домену.