Могу ли я изменить значение Environment.NewLine?
Нет. Если вы знаете, для какой платформы писать, создайте классы для каждой из этих платформ и дайте им собственную реализацию. В простейшем случае это будет выглядеть следующим образом:
public abstract class Platform { public abstract string Newline { get; } }
public sealed class Unix : Platform {
public override string Newline { get { return "\n"; } }
}
и т. Д., А затем просто используйте экземпляр соответствующего класса.